cvs commit: src/sys/net if_ethersubr.c src/sys/net/bridge if_bridge.c

Sepherosa Ziehau sephe at crater.dragonflybsd.org
Tue Jun 5 06:42:49 PDT 2007


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





More information about the Commits mailing list