Re: Patch for nanosecond scheduling precision in ns-3-click
Lalith Suresh <[email protected]>
| Newsgroups | gmane.network.routing.click |
|---|---|
| Message-ID | <CAOj7qWbxrg1QvRj=qdge+m7QiUEYXptGWLN470o8mfTEbpuTuw@mail.gmail.com> |
Hi Sascha, On Fri, Feb 17, 2012 at 10:33 AM, Sascha Alexander Jopen <[email protected]> wrote: > Hey, > > those patches are meant for ns3, sorry. I posted them here, because > Lalith announce his changes here on this mailing list. I will post > them on the ns3 mailing list. > > I will have a look at your changes later on. > I'll look into the patches soon. Been kind of busy lately. > Sascha > > On 02/17/12 01:54, Eddie Kohler wrote: >> 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 > -- Lalith Suresh www.lalith.in