[Ns-developers] Requesting help for csma promiscuous mode
Mathieu Lacage
mathieu.lacage at sophia.inria.fr
Tue Jul 8 08:40:25 PDT 2008
On Tue, 2008-07-08 at 11:54 +0100, Gustavo Carneiro wrote:
> Please just lets take a step back and re-consider the focus of this
> project. Are we building a _network_ simulator or a _hardware_ simulator?
I am building a network simulator, but I agree with craig: I think that
it is totally meaningless to make the devices be always in promisc mode.
That does not mean that we need to support 20 different promisc flags
though.
>
> >From a _hadware_ simulator POV what you say makes sense.
>
> >From a network POV it hardly matters IMHO. Before deciding to blindly copy
> the promiscuous mode into NS-3, let us consider why it exists in the first
> place. The problem is that NICs communicate with the CPU via a PCI bus, in
> a PC (or a South Bridge for NICs built into the motherboard). So there is a
> barrier with limited bandwidth. Moreover, interrupting the CPU via a IRQ
> causes a context switch to attend the interrupt, which decreases system
> performance. For that reason, NICs are built to only communicate to the CPU
> only when frames of interest arrive, which normally include only unicast
> frames directed to the NIC or broadcast. Promiscuous mode is enabled on a
> as needed basis due to performance considerations.
>
> In NS-3 we obviously have no such performance penalty. Filtering frames at
> the Node level is just as efficient as filterering at the NetDevice level.
Yes, unless you have multiple rx callbacks in which case each callback
needs a copy of its own.
> 1- Separate promiscuous receive callback, with or without
> "promiscuous
> mode" (though I don't see the point of it);
>
> 2- Single receive callback, but always in promiscuous mode and
> PacketType
> to make filtering easy;
>
> I strongly advise against:
>
> 3- Single receive callback _and_ promiscuous mode on/off switch.
Why ? That is what linux is doing and they get away with it perfectly
fine.
> In either case, a quick final decision about this would be greatly
> appreciated. If deciding for 1, please also advise on whether full
> backward
> API compatibility is desired or not.
It clearly is not desired.
Mathieu
More information about the Ns-developers
mailing list