1. 19 2月, 2013 1 次提交
  2. 16 2月, 2013 14 次提交
  3. 15 2月, 2013 21 次提交
  4. 14 2月, 2013 4 次提交
    • C
      bridge: use __u16 in if_bridge.h · 9f89ec82
      Cong Wang 提交于
      We should use "__u16" instead of "u16" in the user-space visable
      header.
      
      Cc: Vlad Yasevich <vyasevic@redhat.com>
      Cc: Stephen Hemminger <stephen@networkplumber.org>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: NCong Wang <amwang@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9f89ec82
    • D
      Merge branch 'bridge_vlan' · 93197b13
      David S. Miller 提交于
      Vlad Yasevich says:
      
      ====================
      VLAN filtering/VLAN aware bridge
      
      Changes since v10
      * Updated implemenation of ndo_fdb_del in emulex and qlogic drivers.
      
      Changes since v9:
      * series re-ordering so make functionality more distinct.  Basic vlan
        filtering is patches 1-4.  Support for PVID/untagged vlans is patches
        5 and 6.  VLAN support for FDB/MDB is patches 7-11.  Patch 12 is
        still additional egress policy.
      * Slight simplification to code that extracts the VID from skb.  Since we
        now depend on the vlan module, at the time of input skb_tci is guaranteed
        to be set if the packet had 8021q header.  We can simply refere to it.
      * Changed the opaque 'parent' pointer from prior patches to a union so we
        can be much more explicit in our assignments.
      * Lots of additional testing with STP turned on.  No issues were observed.
      
      Changes since v8:
      * Unified vlans_to_* calls into a single interface
      * Fixed the rest of the issues report by Michal Miroslaw
      * Fixed a bug where fdb entries were not created for all added vlans.
      
      Changes since v7:
      * Rebases on the latest net-next and removed the vlan wrapper patch from
      the series.
      * Fixed a crash in br_fdb_add/br_fdb_delete.
      
      Changes since v6:
      * VLANs are now stored in a VLAN bitmap per port.  This allows for O(1)
      lookup at ingress and egress.  We simply check to see if the bit associated
      with the vlan id is set in the map.  The drawback to this approach is that
      it wastes some space when there is only a small number of VLANs.
      * In addition to the build time configuration option, VLAN filtering also has
      a configuration paramter in sysfs.  By default the filtering is turned off
      and all traffic is permitted.  When the filtring is turned on, we do strict
      matching to the filter configured.  Thus, if there is no configuration, all
      packets are rejected.  This was done to make the behavior more streight
      forward.  Without this (and if egress policy patch is rejected), the
      decision for how to forward untagged traffic that was not filtered at ingress
      is almost impossible to make.  It would not be right to deliver to every
      port that has PVID set as, each port may have a different PVID.
      * Separate egress policy bitmap patch has been isolated and is provided last
      in the series.  This has been a more contentious piece of functionality and I
      wanted to isolate it so that it could easily be dropped and not block the whole
      series.
      
      Changes since v5:
       - Pulled VLAN filtering into its own file and made it a configuration options.
       - Made new vlan filtering option dependent on VLAN_8021Q.
       - Got rid of HW filter inlines and moved then vlan_core.c.
         (All of the above suggested by Stephen Hemminger)
      
      Changes since v4:
       - Pull per-port vlan data into its own structures and give it to the bridge
         device thus making bridge device behave like a regular port for vlan
         configuration.
       - Add a per-vlan 'untagged' bitmap that determins egress policy.  If a port
         is part of this bitmap, traffic egresses untagged.
       - PVID is now used for ingress policy only.  Incomming frames without VLAN tag
         are assigned to the PVID vlan.  Egress is determined via bitmap memberships.
       - Allow for incremental config of a vlan.  Now, PVID and untagged memberships
         may be set on existing vlans.  They however can NOT be cleared separately.
       - VLAN deletion is now done via RTM_DELLINK command for PF_BRIDGE family.
         This cleans up the netlink interface.
      
      Changes since v3:
       - Re-integrated compiler problems that got left out last time.  Appologies.
       - checkpatches.pl errors fixed
      
      Changes since v2:
       - Added inline functiosn to manimulate vlan hw filters and re-use in 8021q
         and bridge code.
       - Use rtnl_dereference (Michael Tsirkin)
       - Remove synchronize_net() call (Eric Dumazet)
       - Fix NULL ptr deref bug I introduced in br_ifinfo_notify.
      
      Changes since v1:
       - Fixed some forwarding bugs.
       - Add vlan to local fdb entries.  New local entries are created per vlan
         to facilite correct forwarding to bridge interface.
       - Allow configuration of vlans directly on the bridge master device
         in addition to ports.
      
      Changes since rfc v2:
       - Per-port vlan bitmap is gone and is replaced with a vlan list.
       - Added bridge vlan list, which is referenced by each port.  Entries in
         the birdge vlan list have port bitmap that shows which port are parts
         of which vlan.
       - Netlink API changes.
       - Dropped sysfs support for now.  If people think this is really usefull,
         can add it back.
       - Support for native/untagged vlans.
      
      Changes since rfc v1:
       - Comments addressed regarding formatting and RCU usage
       - iocts have been removed and changed over the netlink interface.
       - Added support of user added ndb entries.
       - changed sysfs interface to export a bitmap.  Also added a write interface.
         I am not sure how much I like it, but it made my testing easier/faster.  I
         might change the write interface to take text instead of binary.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      93197b13
    • V
      bridge: Separate egress policy bitmap · 35e03f3a
      Vlad Yasevich 提交于
      Add an ability to configure a separate "untagged" egress
      policy to the VLAN information of the bridge.  This superseeds PVID
      policy and makes PVID ingress-only.  The policy is configured with a
      new flag and is represented as a port bitmap per vlan.  Egress frames
      with a VLAN id in "untagged" policy bitmap would egress
      the port without VLAN header.
      Signed-off-by: NVlad Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      35e03f3a
    • V
      bridge: Add vlan support for local fdb entries · bc9a25d2
      Vlad Yasevich 提交于
      When VLAN is added to the port, a local fdb entry for that port
      (the entry with the mac address of the port) is added for that
      VLAN.  This way we can correctly determine if the traffic
      is for the bridge itself.  If the address of the port changes,
      we try to change all the local fdb entries we have for that port.
      Signed-off-by: NVlad Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bc9a25d2