[ovs-git] Open vSwitch: datapath: s/ODPAT_/ODP_ACTION_ATTR_/ to fit new naming scheme. (netlink)

dev at openvswitch.org dev at openvswitch.org
Thu Jan 27 17:34:27 UTC 2011


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, netlink has been updated
  discards  44307ee2d47f7099e89c66c86093ca4da30b5104 (commit)
  discards  d06ffdaede795b6079a9217eb1e5341d2297432f (commit)
  discards  8f19adecdc57ace334c8f5222003f9540d78a858 (commit)
  discards  dea6e638e7b4b55f39f7329f92f09232df865f6d (commit)
  discards  ef69292a49a17933446dd0d6e447e152c2b5f6ae (commit)
  discards  a8f2fd03b08386ff7ade31d483a2442ad3749dad (commit)
  discards  edc1b5a2d85a4f82ab7f783b83d7f0719beef030 (commit)
  discards  6f9bcd8681f36a8c5c89af1f85f3a268067f1008 (commit)
  discards  659bbd12ae9738e6272c11eec809da8ac8defd41 (commit)
  discards  f1ebdc14b870309a6529076d39a86c04472ecb03 (commit)
  discards  1b53cdbe793d224b9b0a89873832be587552cb5d (commit)
  discards  fdc150521c077873b20c6b6264a8aa5542fbd67c (commit)
  discards  ad0e174961120a2370eb992eece02d43973aa8bb (commit)
  discards  550ef3c47a751afa253a070bf49393759beeca68 (commit)
  discards  6293289822e070e92854837c2b4973d579856bc3 (commit)
  discards  2c15d491252149a7b48493c138e967da510dbdca (commit)
  discards  e5aca3f2dea4e2af1c899045bfc8b75c8053a5f1 (commit)
  discards  08be267e598dcd5875a6afd94536f0d3909d5425 (commit)
  discards  89834ce19cc02a4903df124c74dcea940a7599f7 (commit)
  discards  ea93cf8f21b4c6761e71c09ef45b5d2022a158a8 (commit)
  discards  7d60fd1b501cda055e251d38b61d8696532c291f (commit)
  discards  349b7867fc6d02fe06270f8e4a7ce2684df33dcd (commit)
  discards  44642bb0a636ad948af8676748a1c7878a6f8c54 (commit)
  discards  1c890bcbe149dc52eea5850e8fa30d159b8bfac2 (commit)
  discards  24924ec9a7a08f02f57707be1ab88a1cffad4ca8 (commit)
  discards  14d9b5d3ba5213fa6d98d8348dad3eb00b1b4f87 (commit)
  discards  78acac9c7edf26047869b8d84767839ff57bc234 (commit)
  discards  e7501758b3ef3fb07e77c974b435ef4d1e290751 (commit)
  discards  21bcb1af3d5cb0971b728914399189fdcad51ba4 (commit)
  discards  97a7124f31ab223169d229dffca1a320f6b5baf0 (commit)
  discards  772e1d3f5480b1080b10c7ff47de6d5df9f58ba3 (commit)
  discards  b78cdf08c168af5f4b0d8d732b17ae7fe64a3dda (commit)
  discards  5a0a6549759cdea77508829eb2c4119bffdb9141 (commit)
  discards  075698c66137f0590d39e82edf863682b4657195 (commit)
  discards  b7c46d0ec5b5a95a309ff189ce685d5d2e0111b8 (commit)
  discards  5201e76b0a67c3a5711202ee8e44cd5f661121f6 (commit)
  discards  6eb5ffa11eaeacade64d420553efb6a5a95ff67d (commit)
  discards  8532dcb5e06de287a76dfe04fc8d6ec55d39928d (commit)
  discards  4cf35060e73790c4c21a0702bb408893bc3ef1ef (commit)
  discards  baa7bcc5f66115204dea6006bcff3b0f2f875191 (commit)
  discards  4df0e4e6c1d7df6cc64328bf52f8f4b36394c480 (commit)
  discards  ac2a60fb4f7b1ba198785f990edf4cf86eda181e (commit)
  discards  9d83fb36281f75efa0c34e8707d3d04441c8271d (commit)
  discards  342554b8d0ce9759252cbd98f5801770a4849314 (commit)
  discards  c9193da867415d21d41004ecfba1574aebe825f9 (commit)
  discards  236276eb5d18121ac457114ebdb7e0952fe36f91 (commit)
  discards  53392de363154d1f4060343fde6a6e2430796131 (commit)
  discards  6958563feb92f56d9d65aa1a7b5d2a4d9cb05cdc (commit)
  discards  9f3360c80db4953a6c127b202e5e36042d4239de (commit)
  discards  287c49afcdcb25301ff959abf98dafde0393a174 (commit)
  discards  92313bf9dbc2f5af9ae8b291d1f21725c417b1cf (commit)
  discards  44a80ab47127a850454121729a8d5bc6e1bc40b5 (commit)
  discards  f78085e3d6569e5899572ad81e9546cd6ec05b4a (commit)
  discards  f74f5516cbc417f63cc58e1dd5eb527f4e65b1f6 (commit)
  discards  d2b8fae659fab20c8e6cb017ee424505576c0ea2 (commit)
  discards  d5655357a1c0a8c7bc83b53e8c3309517333cb62 (commit)
  discards  dbb8591d79a84bcc82f82861f34bddf737feb051 (commit)
  discards  c5ddd20b1c1e221e7988c458c3f8e739e2412fff (commit)
  discards  804de257ebbbaa751ee2947ef86c345d6870089c (commit)
  discards  d4a4b2619dd9557ed83cd4716bc3c0dd05b594cd (commit)
  discards  d2038d3ab481f99aad7830f0873af7ce6a6905eb (commit)
       via  9ff0bb7901b9f9e09eb913e520c3062e3ea7bd23 (commit)
       via  ee9d736950c22b09cc94fc3a3a7e8de056bac116 (commit)
       via  941bf9d2e7381520c2081fe4e7c047f640012edf (commit)
       via  58efcc1d2d6fabfe47b4f9fc5289cc501f5f322c (commit)
       via  636959c99fcec10b287a67ca40469c3fcec259d9 (commit)
       via  274220966ccc99c63c2d1cbb860175fd50b50078 (commit)
       via  d51274709fbf8ecd36f0ad94132fe1d3c00fa115 (commit)
       via  c3f9c9928403f82c1285c5ec7e055c8f03330806 (commit)
       via  7b64f97423a5876bceb8eb55b3d091932b07f04c (commit)
       via  9469adff4ca71157a32b98eb56cef50e6ea4852d (commit)
       via  ba49fedad452a08da1a34c3cfa05c2b7a11af5bf (commit)
       via  578cd0b5d93395652e5e4a816de69373238ca8c9 (commit)
       via  e973441606a3480973dd2b584a7b7eddb0a92ea0 (commit)
       via  e693d1cfedaea4c56e20e29d9322b1f647e14ae0 (commit)
       via  f68dba6ad120829b44284f8c26f8a8c0071bb4d8 (commit)
       via  921d0dde14995a5d74935e519f0b9880a13733fc (commit)
       via  b63be19efb70364f2040dd859a84d98e483e0d61 (commit)
       via  fb1a26d7230d128fef26e6a30ff2657ea93879cd (commit)
       via  ffd669fb5058da242f7e8e90ac6ce740934b987b (commit)
       via  fe0fb8178a630135ffe84807b4ecfe107beeb7a3 (commit)
       via  a5c255510e9ecd4351421e300cc944660c56117d (commit)
       via  894f54073bc8acc7da0e211da94bf273d254a8ea (commit)
       via  983292252bfe94789673795bbd975d5baab31a5a (commit)
       via  d3fdd33715f913a7387dd8226652f5f4d1c1a4f4 (commit)
       via  001d032a58f75bd7eabc0c26d23966d0bd2c3416 (commit)
       via  4ae902323ef1ea54be36ac346654c297ac850b73 (commit)
       via  2f41cedbdb6d4763a5243567ad1e163e990f7425 (commit)
       via  917c97362120026c2a7ba68261c2960b3c0d2e5c (commit)
       via  e8d013a12f912555ff6900e4e64ab09e01d3b538 (commit)
       via  fadd8c29e0d717660db4d8ef5cc4e0c5301f79ad (commit)
       via  7ee0041a47022a316722122af7ed729c4a22d1a3 (commit)
       via  1ff436630f4a4b2ed439d7bb03ae154fdf5c81c0 (commit)
       via  fa1710086262790ce2d9a68aed31df0029238bb2 (commit)
       via  30feac2ba41277aa3a1307d13f058b9abfb2b399 (commit)
       via  bca4ff99e680f6ffaa123ffd679fb680ba7edfed (commit)
       via  486f049084a88701a30962587bfd5412d97e62d0 (commit)
       via  10a0ec9ef5dd5a9d620b367b277e06420b49f021 (commit)
       via  09a1ad0cc25b17f0bb7bc4acd655ca9f38a703f7 (commit)
       via  ae77309679ba63608fc214cd37ce0a149765a3e9 (commit)
       via  1f9f1e6bc57d4d1fcd77ff9289190b0c14ba0ea1 (commit)
       via  c468fa3b791c738664c6fd4bd1badfba97e884ac (commit)
       via  7affa6f1969856f70f12c83980f5105aea64bb64 (commit)
       via  ae1b9e7d2c6d447f912b7cfbfbf33067419bc156 (commit)
       via  d650378e743b93ab070ffde978a7557aa522dcb1 (commit)
       via  17dddfc95f133997a81a02cd713fc309dd9c81ee (commit)
       via  9d77f19064597afe0c2e5af73c84df57b8e9b2f5 (commit)
       via  c56d226f8d3fc7a68716be87e3d651be604213fa (commit)
       via  3476fce34e05af370e90961a9df4d237d6ca2e51 (commit)
       via  2ad204c8631635a0daf6bb58ece79f89e580e299 (commit)
       via  727ef33f12f7736961455d1835e654687efc4708 (commit)
       via  c6eab56db47739d73675ff181a03eb1923303284 (commit)
       via  7041c3a9b01f049551c1b230874f8ff809b0f3dc (commit)
       via  6b7c12fdc1d3a08a934b29109fa6ffac6b45ebe0 (commit)
       via  cceb11f5b12d09cc8afc87ca4fd03e941234d439 (commit)
       via  18c58479a14f760fb03c2062f9a35961fc74ebb5 (commit)
       via  33cada0cf1f24beb79c23328acb2bf9860c34679 (commit)
       via  b18fcf8edd07d7832c16e96f29d44a2961c1e5aa (commit)
       via  ee114c23f735a91b165dab0908c1fdea736e782a (commit)
       via  a46c577af5c5855939ca3192a56396e15bebf0f8 (commit)
       via  0dce369bdd8bf47895e59277bcbf77b74af20446 (commit)
       via  31ac1e590b9bb2a2ce7c70cd7c8fd2db0fb8e481 (commit)
       via  f0d3bc86154e697f4dc03667950319db66517522 (commit)
       via  2dd26837037ee6b9ff3d8fbdb1eb64b203ad7b02 (commit)
      from  44307ee2d47f7099e89c66c86093ca4da30b5104 (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 9ff0bb7901b9f9e09eb913e520c3062e3ea7bd23
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=9ff0bb7901b9f9e09eb913e520c3062e3ea7bd23
Author: Ben Pfaff <blp at nicira.com>
		
datapath: s/ODPAT_/ODP_ACTION_ATTR_/ to fit new naming scheme.
		
Jesse suggested this naming scheme, so I'm adjusting existing names to
fit it.

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


commit ee9d736950c22b09cc94fc3a3a7e8de056bac116
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=ee9d736950c22b09cc94fc3a3a7e8de056bac116
Author: Ben Pfaff <blp at nicira.com>
		
dpif: Remove dpif_get_all_names().
		
None of the remaining dpif implementations have more than one name per
dpif, so there's no need for this function anymore.

Suggested-by: Jesse Gross <jesse at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>


commit 941bf9d2e7381520c2081fe4e7c047f640012edf
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=941bf9d2e7381520c2081fe4e7c047f640012edf
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Change dp_idx to dp_ifindex, the ifindex of the local port.
		
I can't see any real value in maintaining a dp_idx separate from the
ifindex of the local port.  With the current implementation it also
artificially limits the number of datapaths.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit 58efcc1d2d6fabfe47b4f9fc5289cc501f5f322c
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=58efcc1d2d6fabfe47b4f9fc5289cc501f5f322c
Author: Ben Pfaff <blp at nicira.com>
		
dpif-linux: Replace 'minor' by 'dp_idx'.
		
The dp_idx used to be the character device minor number, but there's no
character device anymore, so rename for clarity.

Reviewed by Justin Pettit.


commit 636959c99fcec10b287a67ca40469c3fcec259d9
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=636959c99fcec10b287a67ca40469c3fcec259d9
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Convert ODP_FLOW_* commands to use AF_NETLINK socket layer.
		
This completes the transition to the Generic Netlink interface, and
so this commit restores support for Linux 2.6.18 and later.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit 274220966ccc99c63c2d1cbb860175fd50b50078
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=274220966ccc99c63c2d1cbb860175fd50b50078
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Convert ODP_VPORT_* to use AF_NETLINK socket layer.
		
This commit calls genl_lock() and thus doesn't support Linux before
2.6.35, which wasn't exported before that version.  That problem will
be fixed once the whole userspace interface transitions to Generic
Netlink a few commits from now.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit d51274709fbf8ecd36f0ad94132fe1d3c00fa115
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=d51274709fbf8ecd36f0ad94132fe1d3c00fa115
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Convert ODP_DP_* commands to use AF_NETLINK socket layer.
		
This commit calls genl_lock() and thus doesn't support Linux before
2.6.35, which wasn't exported before that version.  That problem will
be fixed once the whole userspace interface transitions to Generic
Netlink a few commits from now.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit c3f9c9928403f82c1285c5ec7e055c8f03330806
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=c3f9c9928403f82c1285c5ec7e055c8f03330806
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Convert upcalls and ODP_EXECUTE to use AF_NETLINK socket layer.
		
This commit calls genl_lock() and thus doesn't support Linux before
2.6.35, which wasn't exported before that version.  That problem will
be fixed once the whole userspace interface transitions to Generic
Netlink a few commits from now.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit 7b64f97423a5876bceb8eb55b3d091932b07f04c
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=7b64f97423a5876bceb8eb55b3d091932b07f04c
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Adopt Generic Netlink-compatible locking.
		
The kernel Generic Netlink layer always holds a mutex (genl_lock) when it
invokes callbacks, so that means that there is no point in having
per-datapath mutexes or a separate vport lock.  This commit removes them.

This commit breaks support for Linux before 2.6.35 because it calls
genl_lock(), which wasn't exported before that version.  That problem will
be fixed once the whole userspace interface transitions to Generic
Netlink a few commits from now.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit 9469adff4ca71157a32b98eb56cef50e6ea4852d
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=9469adff4ca71157a32b98eb56cef50e6ea4852d
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Eliminate vport_mutex by protecting vport table with RCU.
		
The vport_mutex really only protects the vport dev_table, which isn't very
much.  By getting rid of it we take one step toward simplifying the vswitch
locking, which will necessarily have to be based mainly around the Generic
Netlink genl_mutex once we switch to Generic Netlink.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit ba49fedad452a08da1a34c3cfa05c2b7a11af5bf
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=ba49fedad452a08da1a34c3cfa05c2b7a11af5bf
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Backport more Netlink functions.
		
Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>


commit 578cd0b5d93395652e5e4a816de69373238ca8c9
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=578cd0b5d93395652e5e4a816de69373238ca8c9
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Backport genl_register_family_with_ops().
		
Besides the user introduced in this commit, the new Netlink-based datapath
communication code will use this function.

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


commit e973441606a3480973dd2b584a7b7eddb0a92ea0
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=e973441606a3480973dd2b584a7b7eddb0a92ea0
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Extend compatibility code for genl_register_mc_group().
		
The existing compatibility code for genl_register_mc_group() always returns
the same value because the only caller (in brcompat_mod) only needs a
single multicast group.  However, when the datapath is converted over to
using Netlink in an upcoming commit, openvswitch_mod will start needing a
number of multicast groups, so this commit adds this ability.

The multicast group ranges differ for brcompat_mod and openvswitch_mod so
that they don't interfere with one another.  (This would waste time in
ovs-brcompatd and ovs-vswitchd, although it would not be fatal.)

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


commit e693d1cfedaea4c56e20e29d9322b1f647e14ae0
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=e693d1cfedaea4c56e20e29d9322b1f647e14ae0
Author: Ben Pfaff <blp at nicira.com>
		
Eliminate ODPL_* from userspace-facing interface.
		
Reviewed by Justin Pettit.


commit f68dba6ad120829b44284f8c26f8a8c0071bb4d8
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=f68dba6ad120829b44284f8c26f8a8c0071bb4d8
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Get rid of ODPP_NONE.
		
This definition wasn't actually useful for the kernel--the only place that
it was used it didn't really have to be, so this commit removes it from
datapath-protocol.h.  It is still marginally useful in userspace, at least
as a value that converts to and from OpenFlow port number OFPP_NONE, so
move it to odp-util.c.

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


commit 921d0dde14995a5d74935e519f0b9880a13733fc
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=921d0dde14995a5d74935e519f0b9880a13733fc
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Convert ODP_EXECUTE to use Netlink framing.
		
Signed-off-by: Ben Pfaff <blp at nicira.com>


commit b63be19efb70364f2040dd859a84d98e483e0d61
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b63be19efb70364f2040dd859a84d98e483e0d61
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Remove non-standard nla_put_be{16,32,64} functions.
		
These aren't part of any version of Linux, so delete them now that the code
does not use them.

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


commit fb1a26d7230d128fef26e6a30ff2657ea93879cd
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=fb1a26d7230d128fef26e6a30ff2657ea93879cd
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Convert datapath operations to use Netlink framing.
		
Signed-off-by: Ben Pfaff <blp at nicira.com>


commit ffd669fb5058da242f7e8e90ac6ce740934b987b
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=ffd669fb5058da242f7e8e90ac6ce740934b987b
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Convert ODP_FLOW_* and ODP_EXECUTE to put dp_idx into message.
		
When the datapath moves to the Netlink protocol it won't have a minor
number to use, so we have to put the dp_idx in the message.

This also changes the kernel implementation of ODP_FLOW_FLUSH to do the
datapath locking inside flush_flows() instead of inside openvswitch_ioctl()
but doesn't change that command's userspace interface, which still passes
a datapath number as the ioctl argument.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit fe0fb8178a630135ffe84807b4ecfe107beeb7a3
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=fe0fb8178a630135ffe84807b4ecfe107beeb7a3
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Eliminate 'flags' member from odp_flow.
		
Nothing was productively using the 'flags' member of odp_flow, so this
commit removes it.

ODPFF_ZERO_TCP_FLAGS isn't used at all (as of the previous commit).

ODPFF_EOF has been replaced by a special case of the 'key_len' member.
This will go away, too, once AF_NETLINK starts being used.

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


commit a5c255510e9ecd4351421e300cc944660c56117d
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=a5c255510e9ecd4351421e300cc944660c56117d
Author: Ben Pfaff <blp at nicira.com>
		
ofproto: Avoid using ODPFF_ZERO_TCP_FLAGS.
		
I'm planning to remove this flag, since it is a bit of a wart, so this
commit deletes its only actual user.

Reviewed by Ethan Jackson <ethan at nicira.com>.


commit 894f54073bc8acc7da0e211da94bf273d254a8ea
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=894f54073bc8acc7da0e211da94bf273d254a8ea
Author: Ben Pfaff <blp at nicira.com>
		
ofproto: Generalize facet_put__() so that it is more useful.
		
This immediately makes it useful in facet_revalidate().  An upcoming
patch will add one more user.

This commit should not change any externally visible behavior.  It
is a pure code refactoring.

Reviewed by Ethan Jackson <ethan at nicira.com>.


commit 983292252bfe94789673795bbd975d5baab31a5a
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=983292252bfe94789673795bbd975d5baab31a5a
Author: Ben Pfaff <blp at nicira.com>
		
ofproto: Fix test for installability change when revalidating.
		
ctx.may_set_up_flow will become the new facet->may_install, so it's that
value that we should check instead of the current facet->may_install when
deciding whether to update the datapath flow.

Reviewed by Ethan Jackson <ethan at nicira.com>.


commit d3fdd33715f913a7387dd8226652f5f4d1c1a4f4
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=d3fdd33715f913a7387dd8226652f5f4d1c1a4f4
Author: Ben Pfaff <blp at nicira.com>
		
dpif: Eliminate ODPPF_* constants from client-visible interface.
		
Following this commit, the ODPPF_* constants are only used in
Linux-specific parts of OVS userspace code.  This allows the actual Linux
datapath interface to evolve more freely.

Reviewed by Justin Pettit.


commit 001d032a58f75bd7eabc0c26d23966d0bd2c3416
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=001d032a58f75bd7eabc0c26d23966d0bd2c3416
Author: Ben Pfaff <blp at nicira.com>
		
dpif: Eliminate "struct odp_flow_stats" from client-visible interface.
		
Following this commit, "struct odp_flow_stats" is only used in
Linux-specific parts of OVS userspace code.  This allows the actual Linux
datapath interface to evolve more freely.

Reviewed by Justin Pettit.


commit 4ae902323ef1ea54be36ac346654c297ac850b73
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=4ae902323ef1ea54be36ac346654c297ac850b73
Author: Ben Pfaff <blp at nicira.com>
		
dpif: Eliminate "struct odp_flow" from client-visible interface.
		
Following this commit, "struct odp_flow" and related data structures are
only used in Linux-specific parts of OVS userspace code.  This allows the
actual Linux datapath interface to evolve more freely.

Reviewed by Justin Pettit.


commit 2f41cedbdb6d4763a5243567ad1e163e990f7425
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=2f41cedbdb6d4763a5243567ad1e163e990f7425
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Change ODP_FLOW_GET to retrieve only a single flow at a time.
		
This brings the code closer to what the Netlink interface will need to
implement.

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


commit 917c97362120026c2a7ba68261c2960b3c0d2e5c
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=917c97362120026c2a7ba68261c2960b3c0d2e5c
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Drop port information from odp_stats.
		
As with n_flows, n_ports was used regularly by userspace to determine how
much memory to allocate when listing ports, but it is no longer needed for
that.  max_ports, on the other hand, is necessary but it is also a fixed
value for the kernel datapath right now and if we expand it we can also
come up with a way to report the expanded value.

The remaining members of odp_stats are actually real statistics that I
intend to keep.

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


commit e8d013a12f912555ff6900e4e64ab09e01d3b538
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=e8d013a12f912555ff6900e4e64ab09e01d3b538
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Drop queue information from odp_stats.
		
This queue information will be available through the kernel socket layer
once we move over to Netlink socket as transports, so we might as well get
rid of the redundancy.

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


commit fadd8c29e0d717660db4d8ef5cc4e0c5301f79ad
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=fadd8c29e0d717660db4d8ef5cc4e0c5301f79ad
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Drop flow information from odp_stats.
		
Userspace used to use the n_flows information here to decide how much
memory needed to be allocated to list flows, but that isn't necessary any
longer now that listing flows uses an iterator abstraction.  The
cur_capacity and max_capacity members are just curiosities and don't
provide much information; if the implementation ever changes away from
the current hash table implementation then they could become meaningless
anyhow.

But more than anything, these aren't really the kind of statistics that
networking people usually care about.

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


commit 7ee0041a47022a316722122af7ed729c4a22d1a3
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=7ee0041a47022a316722122af7ed729c4a22d1a3
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Change userspace vport interface to use Netlink attributes.
		
One of the goals for Open vSwitch is to decouple kernel and userspace
software, so that either one can be upgraded or rolled back independent of
the other.  To do this in full generality, it must be possible to add new
features to the kernel vport layer without changing userspace software.
The customary way to do this in the Linux networking stack is to use
Netlink and in particular Netlink attributes.  This commit adopts that
model for the vport layer.  It does not yet actually start using the
Netlink socket layer, which will come later.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit 1ff436630f4a4b2ed439d7bb03ae154fdf5c81c0
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=1ff436630f4a4b2ed439d7bb03ae154fdf5c81c0
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Make VERIFY_NUL_STRING verify the string length too.
		
It's better to use HAVE_NLA_NUL_STRING than a version check because the
Xen 2.6.18 kernels backport NLA_NUL_STRING and the nla_policy changes.

Just defining NLA_NUL_STRING to an innocuous value doesn't work, because
Linux before 2.6.19 doesn't define a 'len' member in struct nla_policy at
all (it was named 'minlen' and had different semantics), so attempting to
initialize it caused compile errors.

Grouping things this way also makes it clearer what needs to be deleted
when upstreaming.

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


commit fa1710086262790ce2d9a68aed31df0029238bb2
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=fa1710086262790ce2d9a68aed31df0029238bb2
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Change vport type from string to integer enumeration.
		
I plan to make the vport type part of the standard header stuck on each
Netlink message related to a vport.  As such, it is more convenient to use
an integer than a string.  In addition, by being fundamentally different
from strings, using an integer may reduce the confusion we've had in the
past over the differences in userspace and kernel names for network device
and vport types.

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


commit 30feac2ba41277aa3a1307d13f058b9abfb2b399
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=30feac2ba41277aa3a1307d13f058b9abfb2b399
Author: Ben Pfaff <blp at nicira.com>
		
dpif: Eliminate "struct odp_port" from client-visible interface.
		
Following this commit, "struct odp_port" is only used in Linux-specific
parts of OVS userspace code.  This allows the actual Linux datapath
interface to evolve more freely.

Reviewed by Justin Pettit.


commit bca4ff99e680f6ffaa123ffd679fb680ba7edfed
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=bca4ff99e680f6ffaa123ffd679fb680ba7edfed
Author: Ben Pfaff <blp at nicira.com>
		
ovs-dpctl: Use netdev_get_config() to print vport configurations.
		
This is cleaner than parsing "odp_port"s directly.  It takes one step
toward eliminating use of odp_port from any userspace code outside of
lib/netdev-vport.c and lib/dpif-linux.c.

Reviewed by Justin Pettit.


commit 486f049084a88701a30962587bfd5412d97e62d0
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=486f049084a88701a30962587bfd5412d97e62d0
Author: Ben Pfaff <blp at nicira.com>
		
netdev: Make netdev arguments fetchable, and implement for netdev-vport.
		
This gives network device implementations the opportunity to fetch an
existing device's configuration and store it as their arguments, so that
netdev clients can find out how an existing device is configured.

So far netdev-vport is the only implementation that needs to use this.

The next commit will add use by clients.

Reviewed by Justin Pettit.


commit 10a0ec9ef5dd5a9d620b367b277e06420b49f021
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=10a0ec9ef5dd5a9d620b367b277e06420b49f021
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Drop datapath index and port number from Ethtool output.
		
I introduced this a long time ago as an efficient way for userspace to find
out whether and where an internal device was attached, but I've always
considered it an ugly kluge.  Now that ODP_VPORT_QUERY can fetch a vport's
info regardless of datapath, it is no longer necessary.  This commit
stops using Ethtool for this purpose and drops the feature.

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


commit 09a1ad0cc25b17f0bb7bc4acd655ca9f38a703f7
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=09a1ad0cc25b17f0bb7bc4acd655ca9f38a703f7
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Make it possible to query vports by name regardless of datapath.
		
Until now it has only been possible to query a vport if you know what
datapath it is on.  This doesn't really make sense, so this commit removes
that restriction.  It is a little bigger than one might naturally expect
because locking changes are required.

This also allows us to get rid of the ETHTOOL_GDRVINFO kluge that has
bothered me for a long time.  The next commit does that.

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


commit ae77309679ba63608fc214cd37ce0a149765a3e9
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=ae77309679ba63608fc214cd37ce0a149765a3e9
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Change listing ports to use an iterator concept.
		
One of the goals for Open vSwitch is to decouple kernel and userspace
software, so that either one can be upgraded or rolled back independent of
the other.  To do this in full generality, it must be possible to add new
features to the kernel vport layer without changing userspace software.  In
turn, that means that the odp_port structure must become variable-length.
This does not, however, fit in well with the ODP_PORT_LIST ioctl in its
current form, because that would require userspace to know how much space
to allocate for each port in advance, or to allocate as much space as
could possibly be needed.  Neither choice is very attractive.

This commit prepares for a different solution, by replacing ODP_PORT_LIST
by a new ioctl ODP_VPORT_DUMP that retrieves information about a single
vport from the datapath on each call.  It is much cleaner to allocate the
maximum amount of space for a single vport than to do so for possibly a
large number of vports.

It would be faster to retrieve a number of vports in batch instead of just
one at a time, but that will naturally happen later when the kernel
datapath interface is changed to use Netlink, so this patch does not bother
with it.

The Netlink version won't need to take the starting port number from
userspace, since Netlink sockets can keep track of that state as part
of their "dump" feature.

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


commit 1f9f1e6bc57d4d1fcd77ff9289190b0c14ba0ea1
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=1f9f1e6bc57d4d1fcd77ff9289190b0c14ba0ea1
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Report kernel's flow key when passing packets up to userspace.
		
One of the goals for Open vSwitch is to decouple kernel and userspace
software, so that either one can be upgraded or rolled back independent of
the other.  To do this in full generality, it must be possible to change
the kernel's idea of the flow key separately from the userspace version.

This commit takes one step in that direction by making the kernel report
its idea of the flow that a packet belongs to whenever it passes a packet
up to userspace.  This means that userspace can intelligently figure out
what to do:

   - If userspace's notion of the flow for the packet matches the kernel's,
     then nothing special is necessary.

   - If the kernel has a more specific notion for the flow than userspace,
     for example if the kernel decoded IPv6 headers but userspace stopped
     at the Ethernet type (because it does not understand IPv6), then again
     nothing special is necessary: userspace can still set up the flow in
     the usual way.

   - If userspace has a more specific notion for the flow than the kernel,
     for example if userspace decoded an IPv6 header but the kernel
     stopped at the Ethernet type, then userspace can forward the packet
     manually, without setting up a flow in the kernel.  (This case is
     bad from a performance point of view, but at least it is correct.)

This commit does not actually make userspace flexible enough to handle
changes in the kernel flow key structure, although userspace does now
have enough information to do that intelligently.  This will have to wait
for later commits.

This commit is bigger than it would otherwise be because it is rolled
together with changing "struct odp_msg" to a sequence of Netlink
attributes.  The alternative, to do each of those changes in a separate
patch, seemed like overkill because it meant that either we would have to
introduce and then kill off Netlink attributes for in_port and tun_id, if
Netlink conversion went first, or shove yet another variable-length header
into the stuff already after odp_msg, if adding the flow key to odp_msg
went first.

This commit will slow down performance of checksumming packets sent up to
userspace.  I'm not entirely pleased with how I did it.  I considered a
couple of alternatives, but none of them seemed that much better.
Suggestions welcome.  Not changing anything wasn't an option,
unfortunately.  At any rate some slowdown will become unavoidable when OVS
actually starts using Netlink instead of just Netlink framing.

(Actually, I thought of one option where we could avoid that: make
userspace do the checksum instead, by passing csum_start and csum_offset as
part of what goes to userspace.  But that's not perfect either.)

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


commit c468fa3b791c738664c6fd4bd1badfba97e884ac
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=c468fa3b791c738664c6fd4bd1badfba97e884ac
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Convert odp_flow_key to use Netlink attributes instead.
		
One of the goals for Open vSwitch is to decouple kernel and userspace
software, so that either one can be upgraded or rolled back independent of
the other.  To do this in full generality, it must be possible to change
the kernel's idea of the flow key separately from the userspace version.
In turn, that means that flow keys must become variable-length.  This
commit makes that change using Netlink attribute sequences.

This commit does not actually make userspace flexible enough to handle
changes in the kernel flow key structure, because userspace doesn't yet
have enough information to do that intelligently.  Upcoming commits will
fix that.

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


commit 7affa6f1969856f70f12c83980f5105aea64bb64
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=7affa6f1969856f70f12c83980f5105aea64bb64
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Change listing flows to use an iterator concept.
		
One of the goals for Open vSwitch is to decouple kernel and userspace
software, so that either one can be upgraded or rolled back independent of
the other.  To do this in full generality, it must be possible to change
the kernel's idea of the flow key separately from the userspace version.
In turn, that means that flow keys must become variable-length.  This does
not, however, fit in well with the ODP_FLOW_LIST ioctl in its current form,
because that would require userspace to know how much space to allocate
for each flow's key in advance, or to allocate as much space as could
possibly be needed.  Neither choice is very attractive.

This commit prepares for a different solution, by replacing ODP_FLOW_LIST
by a new ioctl ODP_FLOW_DUMP that retrieves a single flow from the datapath
on each call.  It is much cleaner to allocate the maximum amount of space
for a single flow key than to do so for possibly a very large number of
flow keys.

As a side effect, this patch also fixes a race condition that sometimes
made "ovs-dpctl dump-flows" print an error: previously, flows were listed
and then their actions were retrieved, which left a window in which
ovs-vswitchd could delete the flow.  Now dumping a flow and its actions is
a single step, closing that window.

Dumping all of the flows in a datapath is no longer an atomic step, so now
it is possible to miss some flows or see a single flow twice during
iteration, if the flow table is modified by another process.  It doesn't
look like this should be a problem for ovs-vswitchd.

It would be faster to retrieve a number of flows in batch instead of just
one at a time, but that will naturally happen later when the kernel
datapath interface is changed to use Netlink, so this patch does not bother
with it.

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


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

Summary of changes:
 debian/openvswitch-switch.manpages                 |    3 ++
 .../etc_xapi.d_plugins_openvswitch-cfg-update      |   27 ++++++++++++++++---
 .../opt_xensource_libexec_InterfaceReconfigure.py  |   19 +++++++++++---
 ...ensource_libexec_InterfaceReconfigureVswitch.py |   15 ++++++++---
 4 files changed, 51 insertions(+), 13 deletions(-)


hooks/post-receive
-- 
Open vSwitch




More information about the git mailing list