If VLAN acceleration is used when the kernel receives a packet
then the outer-most VLAN tag will not be present in the packet
when it is received by netdev-linux. Rather, it will be present
in auxdata.
The purpose of this series is to obtain the vlan_tid and if available the
vlan_tpid from auxdata as appropriate and push a VLAN tag onto the packet
accordingly. In order to allow the push to be performed efficiently
netdev_class is updated to provide an ofpbuf * argument to rx_recv().
Key Changes between v4 and v5:
* Updated documentation of rx_recv to text suggested by Ben Pfaff.
* As provided by Ben Pfaff
- Include local copy of struct tpacket_auxdata and related #defines
to avoid depending on the kernel headers used for the build.
Key Changes between v3 and v4:
* Add patch to correct truncated documentation of the rx_recv
field of struct netdev_class.
* On error in rx_recv implementations return a positive error code rather
than a negative one
* Use TP_STATUS_VLAN_VALID to allow vlan 0 to be read from auxdata
* Use TP_STATUS_VLAN_TPID_VALID allow the VLAN tpid to be read
from auxdata
Key Changes between v2 and v3:
* On success, update struct ofpbuf size inside netdev_class rx_recv
implementation and return 0. This moves logic from the caller.
* Document that it is recommended that the struct ofpbuf should provide
extra tailroom for a VLAN header. This will be used by a subsequent patch.
* Update BSD code
* Limit to reading one VLAN from auxdata
Key Changes between v1 and v2:
* Update netdev_class to provide an ofpbuf * argument to rx_recv()
Simon Horman (3):
netdev_class: Pass a struct ofpbuf * to rx_recv()
lib: Add tpid parameter to eth_push_vlan()
netdev-linux: Read packet auxdata to obtain vlan_tid
include/sparse/sys/socket.h | 1 +
lib/cfm.c | 2 +-
lib/flow.c | 2 +-
lib/netdev-bsd.c | 28 ++++----
lib/netdev-dummy.c | 13 ++--
lib/netdev-linux.c | 160 +++++++++++++++++++++++++++++++++++++++----
lib/netdev-provider.h | 25 +++++--
lib/netdev.c | 8 +--
lib/odp-execute.c | 2 +-
lib/packets.c | 4 +-
lib/packets.h | 2 +-
ofproto/bond.c | 2 +-
ofproto/ofproto-dpif-xlate.c | 2 +-
13 files changed, 198 insertions(+), 53 deletions(-)
--
1.8.4
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev