1. 15 8月, 2013 1 次提交
    • J
      openvswitch: Reset tunnel key between input and output. · 36bf5cc6
      Jesse Gross 提交于
      It doesn't make sense to output a tunnel packet using the same
      parameters that it was received with since that will generally
      just result in the packet going back to us. As a result, userspace
      assumes that the tunnel key is cleared when transitioning through
      the switch. In the majority of cases this doesn't matter since a
      packet is either going to a tunnel port (in which the key is
      overwritten with new values) or to a non-tunnel port (in which
      case the key is ignored). However, it's theoreticaly possible that
      userspace could rely on the documented behavior, so this corrects
      it.
      Signed-off-by: NJesse Gross <jesse@nicira.com>
      36bf5cc6
  2. 20 6月, 2013 1 次提交
  3. 15 6月, 2013 1 次提交
  4. 20 4月, 2013 1 次提交
  5. 23 2月, 2013 1 次提交
    • C
      openvswitch: fix the calculation of checksum for vlan header · 7b024082
      Cong Wang 提交于
      In vlan_insert_tag(), we insert a 4-byte VLAN header _after_
      mac header:
      
              memmove(skb->data, skb->data + VLAN_HLEN, 2 * ETH_ALEN);
              ...
              veth->h_vlan_proto = htons(ETH_P_8021Q);
              ...
              veth->h_vlan_TCI = htons(vlan_tci);
      
      so after it, we should recompute the checksum to include these 4 bytes.
      skb->data still points to the mac header, therefore VLAN header is at
      (2 * ETH_ALEN = 12) bytes after it, not (ETH_HLEN = 14) bytes.
      
      This can also be observed via tcpdump:
      
               0x0000:  ffff ffff ffff 5254 005d 6f6e 8100 000a
               0x0010:  0806 0001 0800 0604 0001 5254 005d 6f6e
               0x0020:  c0a8 026e 0000 0000 0000 c0a8 0282
      
      Similar for __pop_vlan_tci(), the vlan header we remove is the one
      overwritten in:
      
      	memmove(skb->data + VLAN_HLEN, skb->data, 2 * ETH_ALEN);
      
      Therefore the VLAN_HLEN = 4 bytes after 2 * ETH_ALEN is the part
      we want to sub from checksum.
      
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Jesse Gross <jesse@nicira.com>
      Signed-off-by: NCong Wang <amwang@redhat.com>
      Signed-off-by: NJesse Gross <jesse@nicira.com>
      7b024082
  6. 27 11月, 2012 1 次提交
  7. 14 11月, 2012 1 次提交
  8. 11 9月, 2012 1 次提交
  9. 04 9月, 2012 1 次提交
  10. 03 9月, 2012 1 次提交
  11. 28 7月, 2012 1 次提交
  12. 23 7月, 2012 1 次提交
  13. 04 5月, 2012 1 次提交
  14. 08 3月, 2012 1 次提交
  15. 04 12月, 2011 1 次提交
    • J
      net: Add Open vSwitch kernel components. · ccb1352e
      Jesse Gross 提交于
      Open vSwitch is a multilayer Ethernet switch targeted at virtualized
      environments.  In addition to supporting a variety of features
      expected in a traditional hardware switch, it enables fine-grained
      programmatic extension and flow-based control of the network.
      This control is useful in a wide variety of applications but is
      particularly important in multi-server virtualization deployments,
      which are often characterized by highly dynamic endpoints and the need
      to maintain logical abstractions for multiple tenants.
      
      The Open vSwitch datapath provides an in-kernel fast path for packet
      forwarding.  It is complemented by a userspace daemon, ovs-vswitchd,
      which is able to accept configuration from a variety of sources and
      translate it into packet processing rules.
      
      See http://openvswitch.org for more information and userspace
      utilities.
      Signed-off-by: NJesse Gross <jesse@nicira.com>
      ccb1352e