DragonFly commits List (threaded) for 2007-06
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/net if_ethersubr.c src/sys/net/bridge if_bridge.c
sephe 2007/06/05 06:41:39 PDT
DragonFly src repository
Modified files:
sys/net if_ethersubr.c
sys/net/bridge if_bridge.c
Log:
Don't let ether_input() to do the bridging work, i.e. change input iface,
since it breaks following things:
o IFF_MONITOR support.
o Assumption that ether_input() is called with input iface's serializer
held.
o Per interface input packets and bytes statistics.
Let the bridge(4) handle the input iface change, which is centralized
at the end of bridge_input() after leaving bridge(4) iface's serializer.
We call ifnet.if_input() when handling iface change, instead of skipping
the "upper" half of ifnet.if_input() as we did originally; the assumption
that "upper" half of ifnet.if_input() does nothing according to input iface
does not sounds good. M_PROTO1 mbuf flag is used to prevent infinite loop;
we may need to create a meaningful alias macro for it.
Other changes:
- Delay bridge_lookup_member_if() call until it is really necessary.
- Update ipackets for bridge(4) iface, if mcast/bcast packet is received
and is going to be delivered to bridge(4) iface.
- Use IF_LLADDR() macro to get bridge(4) iface's MAC address.
- Nuke never reached code.
- Minor style changes.
Revision Changes Path
1.41 +2 -6 src/sys/net/if_ethersubr.c
1.23 +36 -35 src/sys/net/bridge/if_bridge.c
http://www.dragonflybsd.org/cvsweb/src/sys/net/if_ethersubr.c.diff?r1=1.40&r2=1.41&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/bridge/if_bridge.c.diff?r1=1.22&r2=1.23&f=u
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]