Re: Patch for nanosecond scheduling precision in ns-3-click
Eddie Kohler <[email protected]>
| Newsgroups | gmane.network.routing.click |
|---|---|
| Organization | Harvard University |
| Message-ID | <[email protected]> |
Hi Sascha, Both of these patches are for ns, so I can't apply them. Did you mean to send them elsewhere? I just checked in a change that you should look at... Eddie On 2/11/12 3:18 PM, Sascha Alexander Jopen wrote: > Hey, > > finally i've got some time to run simulations with the nanosecond > precision changes. Well, they run with nanosecond precision. > > However, this does only work, when running the simulator with nanosecond > or finer resolution. With lower resolution, the timestamp at which the > event is scheduled is rounded down by the NS3 Time class. Because this > depends on the resolution of NS3, this has to be fixed in > HandleScheduleFromClick to the next matching timestamp. This is > essentially the same as we did in click routerthread.cc to fix problems > with nano-/microsecond precision. See the attached patch for a quick > fix. This has to be applied to ns-3-dev as well, removing the > microsecond part of it. > Using other resolutions but the default resolution in ns3 has some > disadvantages. Some models simply do not work with other resolutions, > like the wifi dcf manager, which relies on us slottimes, for example. > > By the way, the last patch i submitted, which calls simclick_click_kill > leads to segfaults when ns3 terminates with uninitialized click routers. > The second patch fixes this (against ns-3-dev) > > Sascha > > On 01/25/12 21:41, Lalith Suresh wrote: >> On Wed, Jan 25, 2012 at 9:40 PM, Eddie Kohler<[email protected]> wrote: >>> Hi Lalith, >>> >>> This is fair enough. But we could add a sim-command that returned 0 if the >>> current timestamp is a timespec. On Ns-2 this command would return -1. Then >>> we could do what's appropriate within click. >>> >> >> Alright. I'll have an update ready soon. >> >>> Eddie >>> >>> >>> >>> On 1/9/12 3:33 PM, Lalith Suresh wrote: >>>> >>>> Hi Eddy, >>>> >>>> On Mon, Jan 9, 2012 at 7:05 PM, Eddie Kohler<[email protected]> wrote: >>>>> >>>>> Hi Lalith, >>>>> >>>>> This change looks generally good, but surely ns defines some version >>>>> variables that we can use to detect whether "cursimnode->curtime" is a >>>>> timespec or a timeval. If it doesn't, then please add one: #define >>>>> NS_CURTIME_IS_TIMESPEC 1. Then Click can be made to work cleanly with >>>>> either, for instance: >>>>> >>>>> #if NS_CURTIME_IS_TIMESPEC >>>>> *ts = cursimnode->curtime; >>>>> #else >>>>> ts->tv_sec = cursimnode->curtime.tv_sec; >>>>> ts->tv_nsec = cursimnode->curtime.tv_usec * 1000; >>>>> #endif >>>>> >>>>> The timer scheduling code in routerthread.cc would also need a fork: #if >>>>> CLICK_NS&& NS_CURTIME_IS_TIMESPEC /timespec-code/ #elif CLICK_NS >>>>> /timeval-code/ #endif. >>>>> >>>>> Make sense? >>>>> >>>> >>>> Nopes (or I'm way too tired). :) >>>> >>>> I don't think a #define in ns-3 will help here. ns-3 links with >>>> libnsclick.so dynamically, and "cursimnode->curtime" comes from >>>> include/click/simclick.h (struct simclick_node). If we are to use the >>>> preprocessor to fork the code appropriately, then we'd need to know >>>> NS_CURTIME_IS_TIMESPEC during Click's compile time. Right? >>>> >>>>> Sascha, did you end up trying this? >>>>> Eddie >>>>> >>>>> >>>>> >>>>> On 12/31/11 7:46 AM, Lalith Suresh wrote: >>>>>> >>>>>> >>>>>> Hello all, >>>>>> >>>>>> After Sascha raised this issue on the ns-3-users list [1], I tried >>>>>> making a quick patch to make Click's NS code use timespec, and make >>>>>> the corresponding changes on the ns-3 side as well. >>>>>> >>>>>> I've pushed the changes to my ns-3-click [2] and Click [3] >>>>>> repositories. Kindly review. I'll push to ns-3-dev once the Click side >>>>>> changes are applied. Note that this will probably break the ns-2 >>>>>> patches for nsclick. >>>>>> >>>>>> >>>>>> [1] >>>>>> >>>>>> http://groups.google.com/group/ns-3-users/browse_thread/thread/2be8d60531bd82a8 >>>>>> [2] http://code.nsnam.org/lalith/ns-3-click-dev >>>>>> [3] https://github.com/lalithsuresh/click >>>>>> >>>>> >>>> >>>> >>>> >>> >> >> >> > > > > _______________________________________________ > click mailing list > [email protected] > https://amsterdam.lcs.mit.edu/mailman/listinfo/click