[ovs-git] Open vSwitch: datapath: Allow skbs with a frag list. (master)

dev at openvswitch.org dev at openvswitch.org
Fri Dec 3 01:11:38 UTC 2010


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".

The branch, master has been updated
       via  8e6c8ff5ae19b04f45905cc35163a855c096d0a3 (commit)
       via  a5b7d883a873fce2f838d59185e70013afc6987d (commit)
       via  15d90bb6c970eb1c96f8ffada260780a03660a8a (commit)
       via  b279fccf5bd8c5addfb8e73b04103405b6a8237e (commit)
       via  f981c8b0da9c8efec309064367e36338518eba15 (commit)
       via  84a2398d1634ffe671d4a6511676802b762d6cd3 (commit)
       via  83e3e75ba62705142ef0d5892a1fd2915c5e28c5 (commit)
       via  9e216c6b593c8e06cd80cccd70d7e4a1029d4d10 (commit)
       via  f8d2160142e59448147c1c929681eaf312968418 (commit)
       via  6d1d631e10b24d9528a4c436805205efcbefd983 (commit)
       via  eb88521dd64ddc542c0c36d57a1155cdcd164d03 (commit)
       via  b1195d37f19f11987027b5b15afa21be9e2a650a (commit)
       via  7da5c9390e3b6c3ad5e0443e171e570fc16ff978 (commit)
      from  1d87ef5cb22d4d1709af6b4d0460b0c3e2af9a22 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8e6c8ff5ae19b04f45905cc35163a855c096d0a3
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=8e6c8ff5ae19b04f45905cc35163a855c096d0a3
Author: Jesse Gross <jesse at nicira.com>
		
datapath: Allow skbs with a frag list.
		
We can already receive packets with a frag list due to reassembly
in CAPWAP tunneling.  Since we can handle it, we might as well open
it up to internal devices as well to prevent linearization.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit a5b7d883a873fce2f838d59185e70013afc6987d
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=a5b7d883a873fce2f838d59185e70013afc6987d
Author: Jesse Gross <jesse at nicira.com>
		
datapath: Don't set dev->last_rx on kernels >= 2.6.29.
		
dev->last_rx is used for rebalancing in Linux bonding.  However,
on a SMP machine it quickly becomes a very hot cacheline.  On
kernels 2.6.29 and later the networking core will update last_rx
only if bonding is in use, so drivers do not need to set it at all.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit 15d90bb6c970eb1c96f8ffada260780a03660a8a
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=15d90bb6c970eb1c96f8ffada260780a03660a8a
Author: Jesse Gross <jesse at nicira.com>
		
tunnels: Mark tnl_ops as static.
		
Both GRE and CAPWAP have tnl_ops that are only accessed inside of
their respective files.  Therefore mark these structures as static.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit b279fccf5bd8c5addfb8e73b04103405b6a8237e
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b279fccf5bd8c5addfb8e73b04103405b6a8237e
Author: Jesse Gross <jesse at nicira.com>
		
datapath: Constify ops structures.
		
vport_ops, tunnel_ops, and ethtool_ops should not change at runtime.
Therefore, mark them as const to keep them out of the hotpath and to
prevent them from getting trampled.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit f981c8b0da9c8efec309064367e36338518eba15
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=f981c8b0da9c8efec309064367e36338518eba15
Author: Jesse Gross <jesse at nicira.com>
		
datapath: Provide compatibility code for SET_ETHTOOL_OPS constness.
		
On 2.6.18 dev->ethtool_ops was not marked as const.  This adds a
compatibility macro that casts away the constness so we can mark
our ethtool ops as const on later kernels.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit 84a2398d1634ffe671d4a6511676802b762d6cd3
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=84a2398d1634ffe671d4a6511676802b762d6cd3
Author: Jesse Gross <jesse at nicira.com>
		
datapath: Add compatibility code for inet_add_protocol().
		
Kernels earlier than 2.6.32 did not mark struct net_protocol as const
in inet_add_protcol() and inet_del_protocol().  This provides compatibility
code to cast away the constness on these kernels so we can have them be
const on newer kernels.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit 83e3e75ba62705142ef0d5892a1fd2915c5e28c5
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=83e3e75ba62705142ef0d5892a1fd2915c5e28c5
Author: Jesse Gross <jesse at nicira.com>
		
datapath: Use __read_mostly annotations where appropriate.
		
Variables which are changed only infrequently should be annotated
with __read_mostly, which will group them together in a special
linker section.  This prevents them from sharing cache lines with
data on the hot path.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit 9e216c6b593c8e06cd80cccd70d7e4a1029d4d10
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=9e216c6b593c8e06cd80cccd70d7e4a1029d4d10
Author: Jesse Gross <jesse at nicira.com>
		
datapath: Don't unnecessarily set skb mac header.
		
We currently call skb_reset_mac_header() in a few places when a
packet is received.  However, this is not needed because flow_extract()
will set all of the protocol headers during parsing and nothing needs
the packet headers before that time.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit f8d2160142e59448147c1c929681eaf312968418
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=f8d2160142e59448147c1c929681eaf312968418
Author: Jesse Gross <jesse at nicira.com>
		
datapath: Remove share check for internal devices.
		
When transmitting on a device, dev_hard_start_xmit() always provides
a private clone.  The skb_share_check() in internal_dev_xmit() is
therefore unnecessary, so remove it.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit 6d1d631e10b24d9528a4c436805205efcbefd983
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=6d1d631e10b24d9528a4c436805205efcbefd983
Author: Jesse Gross <jesse at nicira.com>
		
vport: Remove unused error types.
		
We currently track rx_over_errors, rx_crc_errors, rx_frame_errors,
and collisions but never increment these counters.  It seems likely
that we will never use them since they are primarily hardware errors
and we pull hardware stats directly from the NIC.  This removes those
counters, saving 32 bytes per port.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit eb88521dd64ddc542c0c36d57a1155cdcd164d03
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=eb88521dd64ddc542c0c36d57a1155cdcd164d03
Author: Jesse Gross <jesse at nicira.com>
		
datapath: Drop obsolete comment.
		
The comment above flow_extract() refers to setting OVS_CB(skb)->is_frag
but that member no longer exists.  The correct way to set is_frag is
already documented, so just drop the incorrect comment.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit b1195d37f19f11987027b5b15afa21be9e2a650a
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b1195d37f19f11987027b5b15afa21be9e2a650a
Author: Jesse Gross <jesse at nicira.com>
		
tunneling: Clear IP control block in one memset.
		
We currently clear both the members of the IPCB individually before
entering the IP stack.  It's simpler and more robust to just clear
the entire structure.

Suggested-by: Ben Pfaff <blp at nicira.com>
Signed-off-by: Jesse Gross <jesse at nicira.com>


commit 7da5c9390e3b6c3ad5e0443e171e570fc16ff978
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=7da5c9390e3b6c3ad5e0443e171e570fc16ff978
Author: Jesse Gross <jesse at nicira.com>
		
tunneling: Clear OVS_CB after call to update_header().
		
If a packet is traversing the IP stack we need to clear some pieces
of the skb CB beforehand.  We currently do this before the call to
update_header() but header generation may need some members of the
CB, such as the key.  Therefore, zero out the CB only after the
header is complete.

Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


-----------------------------------------------------------------------

Summary of changes:
 datapath/datapath.c                                |    1 -
 datapath/flow.c                                    |    5 +---
 datapath/linux-2.6/Modules.mk                      |    1 +
 .../linux-2.6/compat-2.6/include/linux/netdevice.h |    6 ++++
 .../linux-2.6/compat-2.6/include/net/protocol.h    |   12 ++++++++
 datapath/tunnel.c                                  |   15 ++++------
 datapath/vport-capwap.c                            |    4 +-
 datapath/vport-gre.c                               |    6 ++--
 datapath/vport-internal_dev.c                      |   21 +++++---------
 datapath/vport-netdev.c                            |    4 +--
 datapath/vport-patch.c                             |    2 +-
 datapath/vport.c                                   |   29 ++-----------------
 datapath/vport.h                                   |   18 +++---------
 13 files changed, 49 insertions(+), 75 deletions(-)
 create mode 100644 datapath/linux-2.6/compat-2.6/include/net/protocol.h


hooks/post-receive
-- 
Open vSwitch




More information about the git mailing list