]> git.proxmox.com Git - mirror_ovs.git/commitdiff
treewide: Convert leading tabs to spaces.
authorBen Pfaff <blp@ovn.org>
Sat, 26 May 2018 00:11:07 +0000 (17:11 -0700)
committerBen Pfaff <blp@ovn.org>
Mon, 11 Jun 2018 22:32:00 +0000 (15:32 -0700)
It's always been OVS coding style to use spaces rather than tabs for
indentation, but some tabs have snuck in over time.  This commit converts
them to spaces.

Signed-off-by: Ben Pfaff <blp@ovn.org>
Acked-by: Justin Pettit <jpettit@ovn.org>
69 files changed:
Documentation/faq/issues.rst
Documentation/faq/vlan.rst
Documentation/group-selection-method-property.txt
Documentation/ref/ovs-sim.1.rst
Documentation/tutorials/faucet.rst
Documentation/tutorials/ovs-advanced.rst
NEWS
Vagrantfile
debian/copyright.in
debian/openvswitch-switch.README.Debian
debian/openvswitch-switch.init
debian/openvswitch-switch.logrotate
debian/ovn-central.postinst
debian/ovn-host.postinst
include/openvswitch/rconn.h
lib/dpif-netdev.c
lib/dpif.c
lib/meta-flow.xml
lib/ofp-print.c
ofproto/ofproto-dpif-ipfix.c
ofproto/ofproto-dpif-sflow.c
ofproto/ofproto-dpif-xlate.c
ovn/utilities/ovn-detrace.in
ovsdb/ovsdb-tool.c
rhel/etc_init.d_openvswitch
rhel/etc_sysconfig_network-scripts_ifdown-ovs
rhel/etc_sysconfig_network-scripts_ifup-ovs
rhel/openvswitch-fedora.spec.in
rhel/openvswitch-kmod-rhel6.spec.in
tests/bfd.at
tests/cfm.at
tests/classifier.at
tests/dpif-netdev.at
tests/interface-reconfigure.at
tests/lacp.at
tests/ofproto-dpif.at
tests/ofproto-macros.at
tests/ofproto.at
tests/ovn.at
tests/ovs-macros.at
tests/ovs-ofctl.at
tests/ovs-router.at
tests/ovsdb-client.at
tests/ovsdb-cluster.at
tests/ovsdb-condition.at
tests/ovsdb-idl.at
tests/ovsdb-log.at
tests/ovsdb-monitor.at
tests/ovsdb-mutation.at
tests/ovsdb-query.at
tests/ovsdb-row.at
tests/ovsdb-schema.at
tests/ovsdb-server.at
tests/ovsdb-tool.at
tests/pmd.at
tests/run-oftest
tests/run-ryu
tests/test-lib.c
tests/test-sflow.c
tests/tunnel.at
tutorial/ovs-sandbox
utilities/bugtool/ovs-bugtool-tc-class-show
utilities/nlmon.c
utilities/ovs-ctl.in
utilities/ovs-sim.in
vswitchd/bridge.c
vswitchd/vswitch.ovsschema
vswitchd/vswitch.xml
xenserver/openvswitch-xen.spec.in

index f26eebd0d783c8b6bcd262835ea1fdfb8065922e..8a30dad37da0939cc585cd8d9edac73ac8f61fca 100644 (file)
@@ -301,14 +301,14 @@ network, but it doesn't work.  Why not?
 
         $ ovs-vsctl add-br br0
         $ ovs-vsctl add-port br0 int0 -- set Interface int0 type=internal
-       $ ip addr add 192.168.0.123/24 dev int0
+        $ ip addr add 192.168.0.123/24 dev int0
         $ ip link set int0 up
 
     Even more simply, you can take advantage of the internal port that every
     bridge has under the name of the bridge::
 
         $ ovs-vsctl add-br br0
-       $ ip addr add 192.168.0.123/24 dev br0
+        $ ip addr add 192.168.0.123/24 dev br0
         $ ip link set br0 up
 
     In more detail, a "tap" device is an interface between the Linux (or BSD)
index 991bb3d4c7a46b37711b2ea77d61fc7a38074540..13d3cde4502dc1fb19992f95217568ca5541185c 100644 (file)
@@ -190,7 +190,7 @@ Q: Can I configure an IP address on a VLAN?
         $ ovs-vsctl add-port br0 eth0
         $ ovs-vsctl add-port br0 vlan9 tag=9 \
             -- set interface vlan9 type=internal
-       $ ip addr add 192.168.0.7/24 dev vlan9
+        $ ip addr add 192.168.0.7/24 dev vlan9
         $ ip link set vlan0 up
 
     See also the following question.
index 5320f24b414619a0e74314dadfa788b1aa86d281..29e8249af6accac6e16e93c5e6ff5005dead5696 100644 (file)
@@ -56,7 +56,7 @@ NTR_VENDOR_ID = 0x0000154d
 The following group property experimenter type defined by this extension.
 
 enum ntr_group_mod_subtype {
-       NTRT_SELECTION_METHOD = 1,
+        NTRT_SELECTION_METHOD = 1,
 };
 
 
index 51a415fba0696ea52f96c7803acc05f7c0dcd96e..4382598e12200f1ffc50f36ccb6b8b03282dc33f 100644 (file)
@@ -95,9 +95,9 @@ instances.
     The new sandbox starts out without any bridges. Use ``ovs-vsctl``
     in the context of the new sandbox to create a bridge, e.g.::
 
-       sim_add hv0           # Create sandbox hv0.
-       as hv0                # Set hv0 as default sandbox.
-       ovs-vsctl add-br br0  # Add bridge br0 inside hv0.
+        sim_add hv0           # Create sandbox hv0.
+        as hv0                # Set hv0 as default sandbox.
+        ovs-vsctl add-br br0  # Add bridge br0 inside hv0.
 
     The Open vSwitch instances that ``sim_add`` creates enable
     ``dummy`` devices.  This means that bridges and interfaces can be
@@ -191,9 +191,9 @@ one, and then connects the two through an interconnection network
 
     net_add n1
     for i in 0 1; do
-       sim_add hv$i
-       as hv$i ovs-vsctl add-br br0 -- add-port br0 vif$i
-       as hv$i net_attach n1 br0
+        sim_add hv$i
+        as hv$i ovs-vsctl add-br br0 -- add-port br0 vif$i
+        as hv$i net_attach n1 br0
     done
 
 Here’s an extended version that also starts OVN::
@@ -202,13 +202,13 @@ Here’s an extended version that also starts OVN::
     ovn-nbctl ls-add lsw0
     net_add n1
     for i in 0 1; do
-       sim_add hv$i
-       as hv$i
-       ovs-vsctl add-br br-phys
-       ovn_attach n1 br-phys 192.168.0.`expr $i + 1`
-       ovs-vsctl add-port br-int vif$i -- set Interface vif$i external-ids:iface-id=lp$i
-       ovn-nbctl lsp-add lsw0 lp$i
-       ovn-nbctl lsp-set-addresses lp$i f0:00:00:00:00:0$i
+        sim_add hv$i
+        as hv$i
+        ovs-vsctl add-br br-phys
+        ovn_attach n1 br-phys 192.168.0.`expr $i + 1`
+        ovs-vsctl add-port br-int vif$i -- set Interface vif$i external-ids:iface-id=lp$i
+        ovn-nbctl lsp-add lsw0 lp$i
+        ovn-nbctl lsp-set-addresses lp$i f0:00:00:00:00:0$i
     done
 
 Here’s a primitive OVN "scale test" (adjust the scale by changing
@@ -219,23 +219,23 @@ Here’s a primitive OVN "scale test" (adjust the scale by changing
     net_add n1
     ovn-nbctl ls-add br0
     for i in `seq $n`; do
-       (sim_add hv$i
-       as hv$i
-       ovs-vsctl add-br br-phys
-       y=$(expr $i / 256)
-       x=$(expr $i % 256)
-       ovn_attach n1 br-phys 192.168.$y.$x
-       ovs-vsctl add-port br-int vif$i -- set Interface vif$i external-ids:iface-id=lp$i) &
-       case $i in
-           *50|*00) echo $i; wait ;;
-       esac
+        (sim_add hv$i
+        as hv$i
+        ovs-vsctl add-br br-phys
+        y=$(expr $i / 256)
+        x=$(expr $i % 256)
+        ovn_attach n1 br-phys 192.168.$y.$x
+        ovs-vsctl add-port br-int vif$i -- set Interface vif$i external-ids:iface-id=lp$i) &
+        case $i in
+            *50|*00) echo $i; wait ;;
+        esac
     done
     wait
     for i in `seq $n`; do
-       yy=$(printf %02x $(expr $i / 256))
-       xx=$(printf $02x $(expr $i % 256))
-       ovn-nbctl lsp-add br0 lp$i
-       ovn-nbctl lsp-set-addresses lp$i f0:00:00:00:$yy:$xx
+        yy=$(printf %02x $(expr $i / 256))
+        xx=$(printf $02x $(expr $i % 256))
+        ovn-nbctl lsp-add br0 lp$i
+        ovn-nbctl lsp-set-addresses lp$i f0:00:00:00:$yy:$xx
     done
 
 When the scale test has finished initializing, you can watch the
index aaaffe7692adf3c1b3bc99acd6fe87909f7bbcd4..9696dfd0230b5780bbbda80a52788d0a5fa150db 100644 (file)
@@ -302,14 +302,14 @@ information, run ``man ovs-vswitchd.conf.db`` and search for
 ``connection_mode``)::
 
   $ ovs-vsctl add-br br0 \
-          -- set bridge br0 other-config:datapath-id=0000000000000001 \
-          -- add-port br0 p1 -- set interface p1 ofport_request=1 \
-          -- add-port br0 p2 -- set interface p2 ofport_request=2 \
-          -- add-port br0 p3 -- set interface p3 ofport_request=3 \
-          -- add-port br0 p4 -- set interface p4 ofport_request=4 \
-          -- add-port br0 p5 -- set interface p5 ofport_request=5 \
-          -- set-controller br0 tcp:127.0.0.1:6653 \
-          -- set controller br0 connection-mode=out-of-band
+           -- set bridge br0 other-config:datapath-id=0000000000000001 \
+           -- add-port br0 p1 -- set interface p1 ofport_request=1 \
+           -- add-port br0 p2 -- set interface p2 ofport_request=2 \
+           -- add-port br0 p3 -- set interface p3 ofport_request=3 \
+           -- add-port br0 p4 -- set interface p4 ofport_request=4 \
+           -- add-port br0 p5 -- set interface p5 ofport_request=5 \
+           -- set-controller br0 tcp:127.0.0.1:6653 \
+           -- set controller br0 connection-mode=out-of-band
 
 .. note::
 
@@ -1290,40 +1290,40 @@ the ways that OVS tries to optimize megaflows.  Update
 
   dps:
       switch-1:
-         dp_id: 0x1
-         timeout: 3600
-         arp_neighbor_timeout: 3600
-         interfaces:
-             1:
-                 native_vlan: 100
-                 acl_in: 1
-             2:
-                 native_vlan: 100
-             3:
-                 native_vlan: 100
-             4:
-                 native_vlan: 200
-             5:
-                 native_vlan: 200
+          dp_id: 0x1
+          timeout: 3600
+          arp_neighbor_timeout: 3600
+          interfaces:
+              1:
+                  native_vlan: 100
+                  acl_in: 1
+              2:
+                  native_vlan: 100
+              3:
+                  native_vlan: 100
+              4:
+                  native_vlan: 200
+              5:
+                  native_vlan: 200
   vlans:
       100:
-         faucet_vips: ["10.100.0.254/24"]
+          faucet_vips: ["10.100.0.254/24"]
       200:
-         faucet_vips: ["10.200.0.254/24"]
+          faucet_vips: ["10.200.0.254/24"]
   routers:
       router-1:
-         vlans: [100, 200]
+          vlans: [100, 200]
   acls:
       1:
-         - rule:
-             dl_type: 0x800
-             nw_proto: 6
-             tcp_dst: 8080
-             actions:
-                 allow: 0
-         - rule:
-             actions:
-                 allow: 1
+          - rule:
+              dl_type: 0x800
+              nw_proto: 6
+              tcp_dst: 8080
+              actions:
+                  allow: 0
+          - rule:
+              actions:
+                  allow: 1
 
 Then restart Faucet::
 
index db8a53ebc1414272a55aa9efa58eb1fe0a46365b..fa9fdc7bf9bc93c57148359717eddcfe54a15714 100644 (file)
@@ -337,7 +337,7 @@ The output should look something like this::
     bridge("br0")
     -------------
      0. dl_dst=01:80:c2:00:00:00/ff:ff:ff:ff:ff:f0, priority 32768
-       drop
+        drop
 
     Final flow: unchanged
     Megaflow: recirc_id=0,in_port=1,dl_src=00:00:00:00:00:00/01:00:00:00:00:00,dl_dst=01:80:c2:00:00:00/ff:ff:ff:ff:ff:f0,dl_type=0x0000
@@ -370,9 +370,9 @@ The output should be::
     bridge("br0")
     -------------
      0. priority 0
-       resubmit(,1)
+        resubmit(,1)
      1. No match.
-       drop
+        drop
 
     Final flow: unchanged
     Megaflow: recirc_id=0,in_port=1,dl_src=00:00:00:00:00:00/01:00:00:00:00:00,dl_dst=01:80:c2:00:00:10/ff:ff:ff:ff:ff:f0,dl_type=0x0000
@@ -450,11 +450,11 @@ yet)::
     bridge("br0")
     -------------
      0. priority 0
-       resubmit(,1)
+        resubmit(,1)
      1. in_port=1, priority 99
-       resubmit(,2)
+        resubmit(,2)
      2. No match.
-       drop
+        drop
 
     Final flow: unchanged
     Megaflow: recirc_id=0,in_port=1,dl_src=00:00:00:00:00:00/01:00:00:00:00:00,dl_dst=00:00:00:00:00:00/ff:ff:ff:ff:ff:f0,dl_type=0x0000
@@ -477,12 +477,12 @@ table 2::
     bridge("br0")
     -------------
      0. priority 0
-       resubmit(,1)
+        resubmit(,1)
      1. in_port=2,vlan_tci=0x0000, priority 99
-       mod_vlan_vid:20
-       resubmit(,2)
+        mod_vlan_vid:20
+        resubmit(,2)
      2. No match.
-       drop
+        drop
 
     Final flow: in_port=2,dl_vlan=20,dl_vlan_pcp=0,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_type=0x0000
     Megaflow: recirc_id=0,in_port=2,vlan_tci=0x0000,dl_src=00:00:00:00:00:00/01:00:00:00:00:00,dl_dst=00:00:00:00:00:00/ff:ff:ff:ff:ff:f0,dl_type=0x0000
@@ -503,9 +503,9 @@ The output shows the packet matching the default drop flow::
     bridge("br0")
     -------------
      0. priority 0
-       resubmit(,1)
+        resubmit(,1)
      1. priority 0
-       drop
+        drop
 
     Final flow: unchanged
     Megaflow: recirc_id=0,in_port=2,vlan_tci=0x0005,dl_src=00:00:00:00:00:00/01:00:00:00:00:00,dl_dst=00:00:00:00:00:00/ff:ff:ff:ff:ff:f0,dl_type=0x0000
@@ -584,15 +584,15 @@ particular flow that was added::
     bridge("br0")
     -------------
      0. priority 0
-       resubmit(,1)
+        resubmit(,1)
      1. in_port=1, priority 99
-       resubmit(,2)
+        resubmit(,2)
      2. priority 32768
-       learn(table=10,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15])
-        -> table=10 vlan_tci=0x0014/0x0fff,dl_dst=50:00:00:00:00:01 priority=32768 actions=load:0x1->NXM_NX_REG0[0..15]
-       resubmit(,3)
+        learn(table=10,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15])
+         -> table=10 vlan_tci=0x0014/0x0fff,dl_dst=50:00:00:00:00:01 priority=32768 actions=load:0x1->NXM_NX_REG0[0..15]
+        resubmit(,3)
      3. No match.
-       drop
+        drop
 
     Final flow: unchanged
     Megaflow: recirc_id=0,in_port=1,vlan_tci=0x0014/0x1fff,dl_src=50:00:00:00:00:01,dl_dst=00:00:00:00:00:00/ff:ff:ff:ff:ff:f0,dl_type=0x0000
@@ -694,20 +694,20 @@ table 10) that the flow's destination was unknown::
     bridge("br0")
     -------------
      0. priority 0
-       resubmit(,1)
+        resubmit(,1)
      1. in_port=1, priority 99
-       resubmit(,2)
+        resubmit(,2)
      2. priority 32768
-       learn(table=10,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15])
-        -> table=10 vlan_tci=0x0014/0x0fff,dl_dst=f0:00:00:00:00:01 priority=32768 actions=load:0x1->NXM_NX_REG0[0..15]
-       resubmit(,3)
+        learn(table=10,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15])
+         -> table=10 vlan_tci=0x0014/0x0fff,dl_dst=f0:00:00:00:00:01 priority=32768 actions=load:0x1->NXM_NX_REG0[0..15]
+        resubmit(,3)
      3. priority 50
-       resubmit(,10)
-       10. No match.
-               drop
-       resubmit(,4)
+        resubmit(,10)
+        10. No match.
+                drop
+        resubmit(,4)
      4. No match.
-       drop
+        drop
 
     Final flow: unchanged
     Megaflow: recirc_id=0,in_port=1,dl_vlan=20,dl_src=f0:00:00:00:00:01,dl_dst=90:00:00:00:00:01,dl_type=0x0000
@@ -745,21 +745,21 @@ the learned port ``p1`` into register ``0``::
     bridge("br0")
     -------------
      0. priority 0
-       resubmit(,1)
+        resubmit(,1)
      1. in_port=2,vlan_tci=0x0000, priority 99
-       mod_vlan_vid:20
-       resubmit(,2)
+        mod_vlan_vid:20
+        resubmit(,2)
      2. priority 32768
-       learn(table=10,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15])
-        -> table=10 vlan_tci=0x0014/0x0fff,dl_dst=90:00:00:00:00:01 priority=32768 actions=load:0x2->NXM_NX_REG0[0..15]
-       resubmit(,3)
+        learn(table=10,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15])
+         -> table=10 vlan_tci=0x0014/0x0fff,dl_dst=90:00:00:00:00:01 priority=32768 actions=load:0x2->NXM_NX_REG0[0..15]
+        resubmit(,3)
      3. priority 50
-       resubmit(,10)
-       10. vlan_tci=0x0014/0x0fff,dl_dst=f0:00:00:00:00:01, priority 32768
-               load:0x1->NXM_NX_REG0[0..15]
-       resubmit(,4)
+        resubmit(,10)
+        10. vlan_tci=0x0014/0x0fff,dl_dst=f0:00:00:00:00:01, priority 32768
+                load:0x1->NXM_NX_REG0[0..15]
+        resubmit(,4)
      4. No match.
-       drop
+        drop
 
     Final flow: reg0=0x1,in_port=2,dl_vlan=20,dl_vlan_pcp=0,dl_src=90:00:00:00:00:01,dl_dst=f0:00:00:00:00:01,dl_type=0x0000
     Megaflow: recirc_id=0,in_port=2,vlan_tci=0x0000,dl_src=90:00:00:00:00:01,dl_dst=f0:00:00:00:00:01,dl_type=0x0000
@@ -781,20 +781,20 @@ executed in table 10, that the destination has now been learned::
     bridge("br0")
     -------------
      0. priority 0
-       resubmit(,1)
+        resubmit(,1)
      1. in_port=1, priority 99
-       resubmit(,2)
+        resubmit(,2)
      2. priority 32768
-       learn(table=10,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15])
-        -> table=10 vlan_tci=0x0014/0x0fff,dl_dst=f0:00:00:00:00:01 priority=32768 actions=load:0x1->NXM_NX_REG0[0..15]
-       resubmit(,3)
+        learn(table=10,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15])
+         -> table=10 vlan_tci=0x0014/0x0fff,dl_dst=f0:00:00:00:00:01 priority=32768 actions=load:0x1->NXM_NX_REG0[0..15]
+        resubmit(,3)
      3. priority 50
-       resubmit(,10)
-       10. vlan_tci=0x0014/0x0fff,dl_dst=90:00:00:00:00:01, priority 32768
-               load:0x2->NXM_NX_REG0[0..15]
-       resubmit(,4)
+        resubmit(,10)
+        10. vlan_tci=0x0014/0x0fff,dl_dst=90:00:00:00:00:01, priority 32768
+                load:0x2->NXM_NX_REG0[0..15]
+        resubmit(,4)
      4. No match.
-       drop
+        drop
 
 
 Implementing Table 4: Output Processing
diff --git a/NEWS b/NEWS
index 484c6dc3dfa4fc2d72b857d49988f9bea81b19a9..7f6589a4687820da948d19b698f3dbc62995936f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -933,7 +933,7 @@ v1.8.0 - 26 Feb 2013
         were allowed.)
       - Allow support for arbitrary Ethernet masks.  (Previously, only
         the multicast bit in the destination address could be individually
-       masked.)
+        masked.)
       - New field OXM_OF_METADATA, to align with OpenFlow 1.1.
       - The OFPST_QUEUE request now reports an error if a specified port or
         queue does not exist, or for requests for a specific queue on all
index 28e9219b8c728d7030e54816f81386b6c99e8321..0192f66ea0c85f5ab09ac15d3f10dc644d12ca7a 100644 (file)
@@ -20,15 +20,15 @@ $bootstrap_debian = <<SCRIPT
 aptitude -y update
 aptitude -y upgrade
 aptitude -y install -R \
-               build-essential dpkg-dev lintian devscripts fakeroot \
-               debhelper dh-autoreconf uuid-runtime \
-               autoconf automake libtool \
-               python-all python-twisted-core python-twisted-conch \
-               xdg-utils groff graphviz netcat curl \
-               wget python-six ethtool \
-               libcap-ng-dev libssl-dev python-dev openssl \
-               python-pyftpdlib python-flake8 python-tftpy \
-               linux-headers-`uname -r`
+                build-essential dpkg-dev lintian devscripts fakeroot \
+                debhelper dh-autoreconf uuid-runtime \
+                autoconf automake libtool \
+                python-all python-twisted-core python-twisted-conch \
+                xdg-utils groff graphviz netcat curl \
+                wget python-six ethtool \
+                libcap-ng-dev libssl-dev python-dev openssl \
+                python-pyftpdlib python-flake8 python-tftpy \
+                linux-headers-`uname -r`
 SCRIPT
 
 $bootstrap_centos = <<SCRIPT
index a15f4ddbf799ff6da41795104be1a4dfcd0d4cd1..9ad00340f6bbdf1af82974e124c6d8c2d3eaf776 100644 (file)
@@ -1,6 +1,6 @@
 The original sources for this package can be found at:
 
-       http://openvswitch.org/
+        http://openvswitch.org/
 
 Upstream Authors (from AUTHORS):
 
@@ -8,22 +8,22 @@ Upstream Authors (from AUTHORS):
 
 Upstream Copyright Holders:
 
-       Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
-       Copyright (c) 2010 Jean Tourrilhes - HP-Labs.
-       Copyright (c) 2008,2009,2010 Citrix Systems, Inc.
-       and authors listed above.
-       Copyright (c) 2011 Gaetano Catalli
-       Copyright (C) 2000-2003 Geoffrey Wossum (gwossum@acm.org)
-       Copyright (C) 2000 The NetBSD Foundation, Inc.
-       Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
-       Copyright (c) 1982, 1986, 1990, 1993 The Regents of the University of California.
-       Copyright (c) 2008, 2012 Vincent Bernat <bernat@luffy.cx>
-       Copyright (c) 2014 Michael Chapman
-       Copyright (c) 2014 WindRiver, Inc.
-       Copyright (c) 2014 Avaya, Inc.
-       Copyright (c) 2001 Daniel Hartmeier
-       Copyright (c) 2002 - 2008 Henning Brauer
-       Copyright (c) 2012 Gleb Smirnoff <glebius@FreeBSD.org>
+        Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
+        Copyright (c) 2010 Jean Tourrilhes - HP-Labs.
+        Copyright (c) 2008,2009,2010 Citrix Systems, Inc.
+        and authors listed above.
+        Copyright (c) 2011 Gaetano Catalli
+        Copyright (C) 2000-2003 Geoffrey Wossum (gwossum@acm.org)
+        Copyright (C) 2000 The NetBSD Foundation, Inc.
+        Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+        Copyright (c) 1982, 1986, 1990, 1993 The Regents of the University of California.
+        Copyright (c) 2008, 2012 Vincent Bernat <bernat@luffy.cx>
+        Copyright (c) 2014 Michael Chapman
+        Copyright (c) 2014 WindRiver, Inc.
+        Copyright (c) 2014 Avaya, Inc.
+        Copyright (c) 2001 Daniel Hartmeier
+        Copyright (c) 2002 - 2008 Henning Brauer
+        Copyright (c) 2012 Gleb Smirnoff <glebius@FreeBSD.org>
 
 License:
 
@@ -31,15 +31,15 @@ License:
   GNU Lesser General Public License version 2.1 only
   with the exception clause below as a pre-amble.
 
-       xenserver/etc_xensource_scripts_vif
-       xenserver/opt_xensource_libexec_InterfaceReconfigure.py
-       xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
-       xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py
-       xenserver/opt_xensource_libexec_interface-reconfigure
-       xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
+        xenserver/etc_xensource_scripts_vif
+        xenserver/opt_xensource_libexec_InterfaceReconfigure.py
+        xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
+        xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py
+        xenserver/opt_xensource_libexec_interface-reconfigure
+        xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
 
-       * These components are only distributed in the source package.
-         They do not appear in any binary packages.
+        * These components are only distributed in the source package.
+          They do not appear in any binary packages.
 
   On Debian systems, the complete text of the
   GNU Lesser General Public License version 2.1 can be found in
@@ -64,12 +64,12 @@ License:
 * The following components are licensed under the
   GNU Lesser General Public License version 2.1.
 
-       utilities/bugtool/ovs-bugtool
-       utilities/bugtool/ovs-bugtool-*
-       utilities/bugtool/plugins/kernel-info/openvswitch.xml
-       utilities/bugtool/plugins/network-status/openvswitch.xml
-       utilities/bugtool/plugins/system-configuration.xml
-       utilities/bugtool/plugins/system-configuration/openvswitch.xml
+        utilities/bugtool/ovs-bugtool
+        utilities/bugtool/ovs-bugtool-*
+        utilities/bugtool/plugins/kernel-info/openvswitch.xml
+        utilities/bugtool/plugins/network-status/openvswitch.xml
+        utilities/bugtool/plugins/system-configuration.xml
+        utilities/bugtool/plugins/system-configuration/openvswitch.xml
 
   On Debian systems, the complete text of the
   GNU Lesser General Public License version 2.1 can be found in
@@ -78,7 +78,7 @@ License:
 * The following component is licensed under the GNU General Public License
   version 2.
 
-       datapath/
+        datapath/
 
   On Debian systems, the complete text of the GNU General Public License
   version 2 can be found in `/usr/share/common-licenses/GPL-2'
@@ -86,25 +86,25 @@ License:
 * The following file is licensed under the GNU General Public License
   version 2.
 
-       build-aux/cccl
+        build-aux/cccl
 
 * The following files are licensed under the 2-clause BSD license.
 
-       lib/getopt_long.c
-       include/windows/getopt.h
-       datapath-windows/ovsext/Conntrack-tcp.c
-       lib/conntrack-tcp.c
+        lib/getopt_long.c
+        include/windows/getopt.h
+        datapath-windows/ovsext/Conntrack-tcp.c
+        lib/conntrack-tcp.c
 
 * The following files are licensed under the 3-clause BSD-license
 
-       include/windows/netinet/icmp6.h
-       include/windows/netinet/ip6.h
-       lib/strsep.c
+        include/windows/netinet/icmp6.h
+        include/windows/netinet/ip6.h
+        lib/strsep.c
 
 * The following components are dual-licensed under the
   GNU General Public License version 2 and the Apache License Version 2.0.
 
-       datapath/linux/compat/include/linux/openvswitch.h
+        datapath/linux/compat/include/linux/openvswitch.h
 
   On Debian systems, the complete text of the GNU General Public License
   version 2 can be found in `/usr/share/common-licenses/GPL-2'.
@@ -114,12 +114,12 @@ License:
 * The following components are licensed under the terms of either the
   Sun Industry Standard Source License 1.1 or the InMon sFlow License:
 
-       lib/sflow.h
-       lib/sflow_agent.c
-       lib/sflow_api.h
-       lib/sflow_poller.c
-       lib/sflow_receiver.c
-       lib/sflow_sampler.c
+        lib/sflow.h
+        lib/sflow_agent.c
+        lib/sflow_api.h
+        lib/sflow_poller.c
+        lib/sflow_receiver.c
+        lib/sflow_sampler.c
 
   These licenses are available, respectively, the following URLs:
 
@@ -131,7 +131,7 @@ License:
 
 * The following components are licensed for use as desired without restriction:
 
-       lib/crc32c.c
+        lib/crc32c.c
 
 * lib/ovs.tmac in the source distribution, and manpages in the
   binaries, includes troff macros from groff 1.21 that contain the
@@ -491,7 +491,7 @@ ACCEPTANCE OF THE TERMS AND CONDITIONS OF THIS AGREEMENT.  IF YOU DO NOT AGREE T
 BY THE TERMS AND CONDITIONS OF THIS AGREEMENT, YOU MAY NOT REPRODUCE OR IN ANY WAY UTILIZE
 THE SOFTWARE OR THE DOCUMENTATION OR THE SPECIFICATIONS.
 
-1.     Definitions.
+1.      Definitions.
 
 "Documentation" means the user manuals, training materials, and operating materials, if any,
 InMon provides to Licensee under this Agreement.
@@ -519,9 +519,9 @@ InMon at: http://www.sflow.org.
 
 "Trademark" means InMon's "sFlow(R)" trademark.
 
-2.     License Grant.
+2.      License Grant.
 
-2.1    Software, Documentation and Specifications License Grant.  InMon hereby grants to
+2.1     Software, Documentation and Specifications License Grant.  InMon hereby grants to
 Licensee, under all of InMon's Intellectual Property Rights therein, a perpetual (subject
 to InMon's termination rights under Section 7 below), nonexclusive, royalty-free, worldwide,
 transferable, sublicensable license, to:  (i) use and reproduce the Software, the
@@ -531,13 +531,13 @@ Specifications have been implemented, on Licensee Hardware and Products, and (v)
 any Products that include the Software, the Documentation, or software in which the
 Specifications have been implemented.
 
-2.2    Trademark License.  InMon hereby grants to Licensee a perpetual (subject to InMon's
+2.2     Trademark License.  InMon hereby grants to Licensee a perpetual (subject to InMon's
 termination rights under Section 7 below), nonexclusive, royalty-free, worldwide,
 transferable, sublicensable license to use the Trademark on or in connection with the
 Software, the Documentation, the Specifications and any software that implements the
 Specifications.
 
-2.3    Restrictions.  Licensee agrees that it will not use the Software in a way
+2.3     Restrictions.  Licensee agrees that it will not use the Software in a way
 inconsistent with the license granted in Section 2.1.  Further, Licensee agrees that, in
 exercising its rights under the license granted to it in this Agreement, Licensee will:
 (i) strictly adhere to and fully comply with the Specifications; (ii) use the Trademark,
@@ -558,7 +558,7 @@ terminate this Agreement as provided under paragraph 7 below and pursue any and
 actions and remedies as it deems necessary, including, but not limited to breach of
 contract.
 
-3.     Ownership.  Except for the license expressly granted in Section 2, Inmon hereby
+3.      Ownership.  Except for the license expressly granted in Section 2, Inmon hereby
 retains all right, title, and interest in and to the Trademark and all its Intellectual
 Property Rights in the Software, the Documentation and the Specifications.  Licensee
 obtains no rights hereunder in the Trademark, Software, Documentation or Specifications by
@@ -567,18 +567,18 @@ Documentation and Specifications are being licensed and not sold under this Agre
 that this Agreement does not transfer title in the Trademark, Software, Documentation or
 Specifications, or any copy thereof, to Licensee.
 
-4.     Support.  Inmon shall have no obligation under this Agreement to (a) supply
+4.      Support.  Inmon shall have no obligation under this Agreement to (a) supply
 maintenance or support, bug fixes or error corrections to the Licensed Software,
 (b) supply future versions of the Licensed Software or (c) provide Licensed Software
 development tools to Licensee.
 
-5.     Warranty.  INMON HEREBY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS, IMPLIED OR
+5.      Warranty.  INMON HEREBY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS, IMPLIED OR
 STATUTORY, WITH RESPECT TO THE TRADEMARK, THE SOFTWARE, THE DOCUMENTATION, THE
 SPECIFICATIONS. OR OTHERWISE, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF
 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT OF ANY INTELLECTUAL
 PROPERTY RIGHTS.
 
-6.     Limitation of Liability.  IN NO EVENT SHALL INMON OR ITS SUPPLIERS OR LICENSORS BE
+6.      Limitation of Liability.  IN NO EVENT SHALL INMON OR ITS SUPPLIERS OR LICENSORS BE
 LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT OR EXEMPLARY DAMAGES WHATSOEVER,
 WHETHER RELATED TO OR ARISING OUT OF THIS AGREEMENT, THE TRADEMARK, THE SOFTWARE, THE
 DOCUMENTATION, THE SPECIFICATIONS, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, DAMAGES FOR
@@ -587,7 +587,7 @@ GOODS OR SERVICES OR FOR ANY CLAIM OR DEMAND AGAINST LICENSEE BY ANY OTHER PARTY
 PECUNIARY LOSS, EVEN IF INMON HAS BEEN ADVISED OF OR KNOWS OF THE POSSIBILITY OF SUCH
 DAMAGES.
 
-7.     Term and Termination.  The term of this Agreement will begin on the Effective Date,
+7.      Term and Termination.  The term of this Agreement will begin on the Effective Date,
 which shall be deemed to be the date of delivery of the Software and/or Documentation and/or
 Specifications to Licensee, and shall continue indefinitely unless and until terminated by
 Licensee's giving written notice of termination to InMon, or by InMon pursuant to InMon's
@@ -597,58 +597,58 @@ including the right to distribute Products that incorporate the Software or Docu
 or that implement the Specifications.  The rights and obligations contained in Sections 1,
 3, 5, 6, 7, and 8 shall survive any termination of this Agreement.
 
-8.     General Provisions.
+8.      General Provisions.
 
-8.1    Assignment.  This Agreement shall be binding upon and inure to the benefit of the
+8.1     Assignment.  This Agreement shall be binding upon and inure to the benefit of the
 parties hereto and their permitted successors and permitted assigns.  InMon will have the
 right to assign this Agreement without notice to Licensee.  Licensee may assign or transfer
 (whether by merger, operation of law or in any other manner) any of its rights or delegate
 any of its obligations hereunder without the prior written consent of InMon, provided the
 assignee assumes in writing all of Licensee's obligations hereunder.
 
-8.2    Notices.  All notices permitted or required under this Agreement shall be in
+8.2     Notices.  All notices permitted or required under this Agreement shall be in
 writing and shall be delivered in person or mailed by first class, registered or certified
 mail, postage prepaid, to the address of the party specified in this Agreement or such
 other address as either party may specify in writing.  Such notice shall be deemed to have
 been given upon receipt.
 
-8.3    Non-Waiver.  No term or provision hereof shall be deemed waived, and no breach
+8.3     Non-Waiver.  No term or provision hereof shall be deemed waived, and no breach
 excused, unless such waiver or consent shall be in writing and signed by the party claimed
 to have waived or consented.  Any consent or waiver, whether express or implied, shall not
 constitute a consent or waiver of, or excuse for any separate, different or subsequent
 breach.
 
-8.4    Independent Contractor.  The parties' relationship shall be solely that of
+8.4     Independent Contractor.  The parties' relationship shall be solely that of
 independent contractors, and nothing contained in this Agreement shall be construed to make
 either party an agent, partner, representative or principal of the other for any purpose.
 
-8.5    Choice of Law and Forum.  This Agreement shall be governed by and construed under
+8.5     Choice of Law and Forum.  This Agreement shall be governed by and construed under
 the laws of the State of California, without giving effect to such state's conflict of laws
 principles.  The parties hereby submit to the personal jurisdiction of, and agree that any
 legal proceeding with respect to or arising under this Agreement shall be brought in, the
 United States District Court for the Northern District of California or the state courts
 of the State of California for the County of San Francisco.
 
-8.6    U.S. Government Licenses.  The Software and Documentation are considered a
+8.6     U.S. Government Licenses.  The Software and Documentation are considered a
 "commercial item" as that term is defined at 48 C.F.R 2.101, or "commercial computer
 software" and "commercial computer software documentation" as such terms are used in
 48 C.F.R 12.212 of the Federal Acquisition Regulations and its successors, and
 48 C.F.R. 227.7202 of the DoD FAR Supplement and its successors.
 
-8.7    Severability.  If any provision of this Agreement is held to be unenforceable under
+8.7     Severability.  If any provision of this Agreement is held to be unenforceable under
 applicable law, then such provision shall be excluded from this Agreement and the balance
 of this Agreement shall be interpreted as if such provision were so excluded and shall be
 enforceable in accordance with its terms.  The court in its discretion may substitute for
 the excluded provision an enforceable provision which in economic substance reasonably
 approximates the excluded provision.
 
-8.8    Compliance With Law.  Licensee shall comply with all applicable laws and
+8.8     Compliance With Law.  Licensee shall comply with all applicable laws and
 regulations (including privacy laws and regulations) having application to or governing its
  use and/or operation of the Software and agrees to indemnify and hold InMon harmless from
 and against any claims, damages, losses or obligations suffered or incurred by InMon
 arising from its failure to so comply.
 
-8.9    Entire Agreement; Amendment.  This Agreement constitutes the final, complete and
+8.9     Entire Agreement; Amendment.  This Agreement constitutes the final, complete and
 entire agreement between the parties with respect to the subject matter hereof, and
 supersedes any previous proposals, negotiations, agreements, or arrangements, whether
 verbal or written, made between the parties with respect to such subject matter.  This
index b38662be0e8dc423a46366c36f8d1a81d4adf2f6..7556844a1183d097d6cb0a86d0ce6f40152d63c8 100644 (file)
@@ -6,36 +6,36 @@ Open vSwitch kernel module.  There are multiple ways to obtain one.
 In order of increasing manual effort, these are:
 
        * Use a Linux kernel 3.3 or later, which has an integrated Open
-        vSwitch kernel module.
+         vSwitch kernel module.
 
-        The upstream Linux kernel module lacks a few features that
-        are in the third-party module.  For details, please see the
-        FAQ, "What features are not available in the Open vSwitch
-        kernel datapath that ships as part of the upstream Linux
-        kernel?".
+         The upstream Linux kernel module lacks a few features that
+         are in the third-party module.  For details, please see the
+         FAQ, "What features are not available in the Open vSwitch
+         kernel datapath that ships as part of the upstream Linux
+         kernel?".
 
        * Install the "openvswitch-datapath-dkms" Debian package that
-        you built earlier.  This should automatically build and
-        install the Open vSwitch kernel module for your running
-        kernel.
+         you built earlier.  This should automatically build and
+         install the Open vSwitch kernel module for your running
+         kernel.
 
-        This option requires that you have a compiler and toolchain
-        installed on the machine where you run Open vSwitch, which
-        may be unacceptable in some production server environments.
+         This option requires that you have a compiler and toolchain
+         installed on the machine where you run Open vSwitch, which
+         may be unacceptable in some production server environments.
 
        * Install the "openvswitch-datapath-source" Debian package, use
-        "module-assistant" to build a Debian package of the Open
-        vSwitch kernel module for your kernel, and then install that
-        Debian package.
-
-        You can install the kernel module Debian packages that you
-        build this way on the same machine where you built it or on
-        another machine or machines, which means that you don't
-        necessarily have to have any build infrastructure on the
-        machines where you use the kernel module.
-
-        /usr/share/doc/openvswitch-datapath-source/README.Debian has
-        details on the build process.
+         "module-assistant" to build a Debian package of the Open
+         vSwitch kernel module for your kernel, and then install that
+         Debian package.
+
+         You can install the kernel module Debian packages that you
+         build this way on the same machine where you built it or on
+         another machine or machines, which means that you don't
+         necessarily have to have any build infrastructure on the
+         machines where you use the kernel module.
+
+         /usr/share/doc/openvswitch-datapath-source/README.Debian has
+         details on the build process.
 
        * Build and install the kernel module by hand.
 
index 5c7c08b3a1f9cc60ba1df3f7e1e6a473448a77cc..e4bc692e5625ff179923ca778dd364d82be67d19 100755 (executable)
@@ -46,26 +46,26 @@ load_kmod () {
 
 start () {
     if ovs_ctl load-kmod; then
-       :
+        :
     else
-       echo "Module has probably not been built for this kernel."
-       if ! test -d /usr/share/doc/openvswitch-datapath-source; then
-           echo "Install the openvswitch-datapath-source package, then read"
-       else
+        echo "Module has probably not been built for this kernel."
+        if ! test -d /usr/share/doc/openvswitch-datapath-source; then
+            echo "Install the openvswitch-datapath-source package, then read"
+        else
             echo "For instructions, read"
-       fi
-       echo "/usr/share/doc/openvswitch-datapath-source/README.Debian"
+        fi
+        echo "/usr/share/doc/openvswitch-datapath-source/README.Debian"
 
-       if test X"$OVS_MISSING_KMOD_OK" = Xyes; then
-           # We're being invoked by the package postinst.  Do not
-           # fail package installation just because the kernel module
-           # is not available.
-           exit 0
-       fi
+        if test X"$OVS_MISSING_KMOD_OK" = Xyes; then
+            # We're being invoked by the package postinst.  Do not
+            # fail package installation just because the kernel module
+            # is not available.
+            exit 0
+        fi
     fi
     set ovs_ctl ${1-start} --system-id=random
     if test X"$FORCE_COREFILES" != X; then
-       set "$@" --force-corefiles="$FORCE_COREFILES"
+        set "$@" --force-corefiles="$FORCE_COREFILES"
     fi
     set "$@" $OVS_CTL_OPTS
     "$@" || exit $?
@@ -117,7 +117,7 @@ restart () {
 case $1 in
     start)
         start
-       ;;
+        ;;
     stop | force-stop)
         stop
         ;;
index 802d3656631dc6f9881d732d580597885815002d..1ccf6f50791d283d9245ea320b8e510c76b4b1f2 100644 (file)
@@ -6,11 +6,11 @@
     missingok
     rotate 30
     postrotate
-       # Tell Open vSwitch daemons to reopen their log files
-       if [ -d /var/run/openvswitch ]; then
+        # Tell Open vSwitch daemons to reopen their log files
+        if [ -d /var/run/openvswitch ]; then
             for ctl in /var/run/openvswitch/*.ctl; do
                 ovs-appctl -t "$ctl" vlog/reopen 2>/dev/null || :
             done
-       fi
+        fi
     endscript
 }
index bdf5c4a8b79cb0e53e3abaefc92fcd937333cc15..10e07ece46f30ed7894b92de086395d04f5e7787 100755 (executable)
@@ -20,19 +20,19 @@ set -e
 
 case "$1" in
     configure)
-       DEFAULT=/etc/default/ovn-central
-       TEMPLATE=/usr/share/ovn/central/default.template
-       if ! test -e $DEFAULT; then
-           cp $TEMPLATE $DEFAULT
-       else
+        DEFAULT=/etc/default/ovn-central
+        TEMPLATE=/usr/share/ovn/central/default.template
+        if ! test -e $DEFAULT; then
+            cp $TEMPLATE $DEFAULT
+        else
             for var in $(awk -F'[ :]' '/^# [_A-Z0-9]+:/{print $2}' $TEMPLATE)
             do
                 if ! grep $var $DEFAULT >/dev/null 2>&1; then
-                   echo >> $DEFAULT
-                   sed -n "/$var:/,/$var=/p" $TEMPLATE >> $DEFAULT
+                    echo >> $DEFAULT
+                    sed -n "/$var:/,/$var=/p" $TEMPLATE >> $DEFAULT
                 fi
             done
-       fi
+        fi
         ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
index 05e80ad1f71d3742936ac8c27c77ce4e1933c5ce..4b3edeb7549930029cdc366486871410a7a98879 100755 (executable)
@@ -20,19 +20,19 @@ set -e
 
 case "$1" in
     configure)
-       DEFAULT=/etc/default/ovn-host
-       TEMPLATE=/usr/share/ovn/host/default.template
-       if ! test -e $DEFAULT; then
-           cp $TEMPLATE $DEFAULT
-       else
+        DEFAULT=/etc/default/ovn-host
+        TEMPLATE=/usr/share/ovn/host/default.template
+        if ! test -e $DEFAULT; then
+            cp $TEMPLATE $DEFAULT
+        else
             for var in $(awk -F'[ :]' '/^# [_A-Z0-9]+:/{print $2}' $TEMPLATE)
             do
                 if ! grep $var $DEFAULT >/dev/null 2>&1; then
-                   echo >> $DEFAULT
-                   sed -n "/$var:/,/$var=/p" $TEMPLATE >> $DEFAULT
+                    echo >> $DEFAULT
+                    sed -n "/$var:/,/$var=/p" $TEMPLATE >> $DEFAULT
                 fi
             done
-       fi
+        fi
         ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
index 176c5f641ed40d03ddda1b5d0836d01658acd148..5dc988af1ddac98cbe8d62ce1ac9c84147e3e2c5 100644 (file)
@@ -48,8 +48,8 @@ struct vconn;
 struct rconn_packet_counter;
 
 struct rconn *rconn_create(int inactivity_probe_interval,
-                          int max_backoff, uint8_t dscp,
-                          uint32_t allowed_versions);
+                           int max_backoff, uint8_t dscp,
+                           uint32_t allowed_versions);
 void rconn_set_dscp(struct rconn *rc, uint8_t dscp);
 uint32_t rconn_get_allowed_versions(const struct rconn *);
 uint8_t rconn_get_dscp(const struct rconn *rc);
index 818b184ee2efa841251edced8a6ce80178ff3037..9390fff68dacdb87ba13b8faf6ee863e9567b1e5 100644 (file)
@@ -856,15 +856,15 @@ pmd_info_show_stats(struct ds *reply,
     }
 
     ds_put_format(reply,
-                  "\tpackets received: %"PRIu64"\n"
-                  "\tpacket recirculations: %"PRIu64"\n"
-                  "\tavg. datapath passes per packet: %.02f\n"
-                  "\temc hits: %"PRIu64"\n"
-                  "\tmegaflow hits: %"PRIu64"\n"
-                  "\tavg. subtable lookups per megaflow hit: %.02f\n"
-                  "\tmiss with success upcall: %"PRIu64"\n"
-                  "\tmiss with failed upcall: %"PRIu64"\n"
-                  "\tavg. packets per output batch: %.02f\n",
+                  "  packets received: %"PRIu64"\n"
+                  "  packet recirculations: %"PRIu64"\n"
+                  "  avg. datapath passes per packet: %.02f\n"
+                  "  emc hits: %"PRIu64"\n"
+                  "  megaflow hits: %"PRIu64"\n"
+                  "  avg. subtable lookups per megaflow hit: %.02f\n"
+                  "  miss with success upcall: %"PRIu64"\n"
+                  "  miss with failed upcall: %"PRIu64"\n"
+                  "  avg. packets per output batch: %.02f\n",
                   total_packets, stats[PMD_STAT_RECIRC],
                   passes_per_pkt, stats[PMD_STAT_EXACT_HIT],
                   stats[PMD_STAT_MASKED_HIT], lookups_per_hit,
@@ -876,8 +876,8 @@ pmd_info_show_stats(struct ds *reply,
     }
 
     ds_put_format(reply,
-                  "\tidle cycles: %"PRIu64" (%.02f%%)\n"
-                  "\tprocessing cycles: %"PRIu64" (%.02f%%)\n",
+                  "  idle cycles: %"PRIu64" (%.02f%%)\n"
+                  "  processing cycles: %"PRIu64" (%.02f%%)\n",
                   stats[PMD_CYCLES_ITER_IDLE],
                   stats[PMD_CYCLES_ITER_IDLE] / (double) total_cycles * 100,
                   stats[PMD_CYCLES_ITER_BUSY],
@@ -888,12 +888,12 @@ pmd_info_show_stats(struct ds *reply,
     }
 
     ds_put_format(reply,
-                  "\tavg cycles per packet: %.02f (%"PRIu64"/%"PRIu64")\n",
+                  "  avg cycles per packet: %.02f (%"PRIu64"/%"PRIu64")\n",
                   total_cycles / (double) total_packets,
                   total_cycles, total_packets);
 
     ds_put_format(reply,
-                  "\tavg processing cycles per packet: "
+                  "  avg processing cycles per packet: "
                   "%.02f (%"PRIu64"/%"PRIu64")\n",
                   stats[PMD_CYCLES_ITER_BUSY] / (double) total_packets,
                   stats[PMD_CYCLES_ITER_BUSY], total_packets);
@@ -991,7 +991,7 @@ pmd_info_show_rxq(struct ds *reply, struct dp_netdev_pmd_thread *pmd)
         uint64_t total_cycles = 0;
 
         ds_put_format(reply,
-                      "pmd thread numa_id %d core_id %u:\n\tisolated : %s\n",
+                      "pmd thread numa_id %d core_id %u:\n  isolated : %s\n",
                       pmd->numa_id, pmd->core_id, (pmd->isolated)
                                                   ? "true" : "false");
 
@@ -1011,9 +1011,9 @@ pmd_info_show_rxq(struct ds *reply, struct dp_netdev_pmd_thread *pmd)
             for (int j = 0; j < PMD_RXQ_INTERVAL_MAX; j++) {
                 proc_cycles += dp_netdev_rxq_get_intrvl_cycles(rxq, j);
             }
-            ds_put_format(reply, "\tport: %-16s\tqueue-id: %2d", name,
+            ds_put_format(reply, "  port: %-16s  queue-id: %2d", name,
                           netdev_rxq_get_queue_id(list[i].rxq->rx));
-            ds_put_format(reply, "\tpmd usage: ");
+            ds_put_format(reply, "  pmd usage: ");
             if (total_cycles) {
                 ds_put_format(reply, "%2"PRIu64"",
                               proc_cycles * 100 / total_cycles);
index 3c7d3b8a2901300c54e9e7897fc502562abbc18c..f6a7f6a72e1846f1c96aad77d1c98b49ba8f70c7 100644 (file)
@@ -369,7 +369,7 @@ do_open(const char *name, const char *type, bool create, struct dpif **dpifp)
                 netdev_close(netdev);
             } else {
                 VLOG_WARN("could not open netdev %s type %s: %s",
-                         dpif_port.name, dpif_port.type, ovs_strerror(err));
+                          dpif_port.name, dpif_port.type, ovs_strerror(err));
             }
         }
     } else {
@@ -1176,7 +1176,7 @@ dpif_execute_helper_cb(void *aux_, struct dp_packet_batch *packets_,
         if (!aux->meter_action) {
             aux->meter_action = action;
         }
-       break;
+        break;
 
     case OVS_ACTION_ATTR_CT:
     case OVS_ACTION_ATTR_OUTPUT:
index 9ad15b3d987e56cc85cc1df5b071b8240f70168a..0b5c1d008737b93e64cf3e4fa090739b85a0e1e9 100644 (file)
     <dt><dfn>Exact match</dfn>, e.g. <code>nw_src=10.1.2.3</code></dt>
     <dd>
       <p>
-       Only a particular value of the field is matched; for example, only one
-       particular source IP address.  Exact matches are written as
-       <code><var>field</var>=<var>value</var></code>.  The forms accepted for
-       <var>value</var> depend on the field.
+        Only a particular value of the field is matched; for example, only one
+        particular source IP address.  Exact matches are written as
+        <code><var>field</var>=<var>value</var></code>.  The forms accepted for
+        <var>value</var> depend on the field.
       </p>
 
       <p>
-       All fields support exact matches.
+        All fields support exact matches.
       </p>
     </dd>
 
     </dt>
     <dd>
       <p>
-       Specific bits in the field must have specified values; for example,
-       only source IP addresses in a particular subnet.  Bitwise matches are
-       written as
-       <code><var>field</var>=<var>value</var>/<var>mask</var></code>, where
-       <var>value</var> and <var>mask</var> take one of the forms accepted for
-       an exact match on <var>field</var>.  Some fields accept other forms for
-       bitwise matches; for example, <code>nw_src=10.1.0.0/255.255.0.0</code>
-       may also be written <code>nw_src=10.1.0.0/16</code>.
+        Specific bits in the field must have specified values; for example,
+        only source IP addresses in a particular subnet.  Bitwise matches are
+        written as
+        <code><var>field</var>=<var>value</var>/<var>mask</var></code>, where
+        <var>value</var> and <var>mask</var> take one of the forms accepted for
+        an exact match on <var>field</var>.  Some fields accept other forms for
+        bitwise matches; for example, <code>nw_src=10.1.0.0/255.255.0.0</code>
+        may also be written <code>nw_src=10.1.0.0/16</code>.
       </p>
 
       <p>
     <dt><dfn>Wildcard</dfn>, e.g. ``any <code>nw_src</code>''</dt>
     <dd>
       <p>
-       The value of the field is not constrained.  Wildcarded fields may be
-       written as <code><var>field</var>=*</code>, although it is unusual to
-       mention them at all.  (When specifying a wildcard explicitly in a
-       command invocation, be sure to using quoting to protect against shell
-       expansion.)
+        The value of the field is not constrained.  Wildcarded fields may be
+        written as <code><var>field</var>=*</code>, although it is unusual to
+        mention them at all.  (When specifying a wildcard explicitly in a
+        command invocation, be sure to using quoting to protect against shell
+        expansion.)
       </p>
 
       <p>
-       There is a tiny difference between wildcarding a field and not
-       specifying any match on a field: wildcarding a field requires
-       satisfying the field's prerequisites.
+        There is a tiny difference between wildcarding a field and not
+        specifying any match on a field: wildcarding a field requires
+        satisfying the field's prerequisites.
       </p>
     </dd>
   </dl>
     8080}''</dt>
     <dd>
       <p>
-       The value of a field is one of a specified set of values; for
-       example, the TCP destination port is 80, 443, or 8080.
+        The value of a field is one of a specified set of values; for
+        example, the TCP destination port is 80, 443, or 8080.
       </p>
 
       <p>
-       For matches used in flows (see <cite>Flows</cite>, below), multiple
-       flows can simulate set matches.
+        For matches used in flows (see <cite>Flows</cite>, below), multiple
+        flows can simulate set matches.
       </p>
     </dd>
 
     1999''</dt>
     <dd>
       <p>
-       The value of the field must lie within a numerical range, for
-       example, TCP destination ports between 1000 and 1999.
+        The value of the field must lie within a numerical range, for
+        example, TCP destination ports between 1000 and 1999.
       </p>
 
       <p>
-       Range matches can be expressed as a collection of bitwise matches.  For
-       example, suppose that the goal is to match TCP source ports 1000 to
-       1999, inclusive.  The binary representations of 1000 and 1999 are:
+        Range matches can be expressed as a collection of bitwise matches.  For
+        example, suppose that the goal is to match TCP source ports 1000 to
+        1999, inclusive.  The binary representations of 1000 and 1999 are:
       </p>
 
       <pre fixed="yes">
       </pre>
 
       <p>
-       The following series of bitwise matches will match 1000 and
-       1999 and all the values in between:
+        The following series of bitwise matches will match 1000 and
+        1999 and all the values in between:
       </p>
 
       <pre fixed="yes">
       </pre>
 
       <p>
-       which can be written as the following matches:
+        which can be written as the following matches:
       </p>
 
       <pre>
@@ -273,8 +273,8 @@ tcp,tp_src=0x07c0/0xfff0
     <dt><dfn>Inequality match</dfn>, e.g. ``<code>tcp_dst</code> â‰  80''</dt>
     <dd>
       <p>
-       The value of the field differs from a specified value, for
-       example, all TCP destination ports except 80.
+        The value of the field differs from a specified value, for
+        example, all TCP destination ports except 80.
       </p>
 
       <p>
@@ -1328,28 +1328,28 @@ tcp,tp_src=0x07c0/0xfff0
     <dl>
       <dt>``Port-based'' tunnels</dt>
       <dd>
-       <p>
-         In this model, an OpenFlow port represents one tunnel: it matches a
-         particular type of tunnel traffic between two IP endpoints, with a
-         particular tunnel key (if keys are in use).  In this situation, <ref
-         field="in_port"/> suffices to distinguish one tunnel from another, so
-         the tunnel header fields have little importance for OpenFlow
-         processing.  (They are still populated and may be used if it is
-         convenient.)  The tunnel header fields play no role in sending
-         packets out such an OpenFlow port, either, because the OpenFlow port
-         itself fully specifies the tunnel headers.
-       </p>
-
-       <p>
-         The following Open vSwitch commands create a bridge
-         <code>br-int</code>, add port <code>tap0</code> to the bridge as
-         OpenFlow port 1, establish a port-based GRE tunnel between the local
-         host and remote IP 192.168.1.1 using GRE key 5001 as OpenFlow port 2,
-         and arranges to forward all traffic from <code>tap0</code> to the
-         tunnel and vice versa:
-       </p>
-
-       <pre>
+        <p>
+          In this model, an OpenFlow port represents one tunnel: it matches a
+          particular type of tunnel traffic between two IP endpoints, with a
+          particular tunnel key (if keys are in use).  In this situation, <ref
+          field="in_port"/> suffices to distinguish one tunnel from another, so
+          the tunnel header fields have little importance for OpenFlow
+          processing.  (They are still populated and may be used if it is
+          convenient.)  The tunnel header fields play no role in sending
+          packets out such an OpenFlow port, either, because the OpenFlow port
+          itself fully specifies the tunnel headers.
+        </p>
+
+        <p>
+          The following Open vSwitch commands create a bridge
+          <code>br-int</code>, add port <code>tap0</code> to the bridge as
+          OpenFlow port 1, establish a port-based GRE tunnel between the local
+          host and remote IP 192.168.1.1 using GRE key 5001 as OpenFlow port 2,
+          and arranges to forward all traffic from <code>tap0</code> to the
+          tunnel and vice versa:
+        </p>
+
+        <pre>
 ovs-vsctl add-br br-int
 ovs-vsctl add-port br-int tap0 -- set interface tap0 ofport_request=1
 ovs-vsctl add-port br-int gre0 --
@@ -1357,32 +1357,32 @@ ovs-vsctl add-port br-int gre0 --
                        options:remote_ip=192.168.1.1 options:key=5001
 ovs-ofctl add-flow br-int in_port=1,actions=2
 ovs-ofctl add-flow br-int in_port=2,actions=1
-       </pre>
+        </pre>
       </dd>
 
       <dt>``Flow-based'' tunnels</dt>
       <dd>
-       <p>
-         In this model, one OpenFlow port represents all possible tunnels of a
-         given type with an endpoint on the current host, for example, all GRE
-         tunnels.  In this situation, <ref field="in_port"/> only indicates
-         that traffic was received on the particular kind of tunnel.  This is
-         where the tunnel header fields are most important: they allow the
-         OpenFlow tables to discriminate among tunnels based on their IP
-         endpoints or keys.  Tunnel header fields also determine the IP
-         endpoints and keys of packets sent out such a tunnel port.
-       </p>
-
-       <p>
-         The following Open vSwitch commands create a bridge
-         <code>br-int</code>, add port <code>tap0</code> to the
-         bridge as OpenFlow port 1, establish a flow-based GRE tunnel
-         port 3, and arranges to forward all traffic from
-         <code>tap0</code> to remote IP 192.168.1.1 over a GRE tunnel
-         with key 5001 and vice versa:
-       </p>
-
-       <pre>
+        <p>
+          In this model, one OpenFlow port represents all possible tunnels of a
+          given type with an endpoint on the current host, for example, all GRE
+          tunnels.  In this situation, <ref field="in_port"/> only indicates
+          that traffic was received on the particular kind of tunnel.  This is
+          where the tunnel header fields are most important: they allow the
+          OpenFlow tables to discriminate among tunnels based on their IP
+          endpoints or keys.  Tunnel header fields also determine the IP
+          endpoints and keys of packets sent out such a tunnel port.
+        </p>
+
+        <p>
+          The following Open vSwitch commands create a bridge
+          <code>br-int</code>, add port <code>tap0</code> to the
+          bridge as OpenFlow port 1, establish a flow-based GRE tunnel
+          port 3, and arranges to forward all traffic from
+          <code>tap0</code> to remote IP 192.168.1.1 over a GRE tunnel
+          with key 5001 and vice versa:
+        </p>
+
+        <pre>
 ovs-vsctl add-br br-int
 ovs-vsctl add-port br-int tap0 -- set interface tap0 ofport_request=1
 ovs-vsctl add-port br-int allgre --
@@ -1391,42 +1391,42 @@ ovs-vsctl add-port br-int allgre --
 ovs-ofctl add-flow br-int \
     'in_port=1 actions=set_tunnel:5001,set_field:192.168.1.1->tun_dst,3'
 ovs-ofctl add-flow br-int 'in_port=3,tun_src=192.168.1.1,tun_id=5001 actions=1'
-       </pre>
+        </pre>
       </dd>
 
       <dt>Mixed models.</dt>
       <dd>
-       <p>
-         One may define both flow-based and port-based tunnels at the
-         same time.  For example, it is valid and possibly useful to
-         create and configure both <code>gre0</code> and
-         <code>allgre</code> tunnel ports described above.
-       </p>
-
-       <p>
-         Traffic is attributed on ingress to the most specific
-         matching tunnel.  For example, <code>gre0</code> is more
-         specific than <code>allgre</code>.  Therefore, if both
-         exist, then <code>gre0</code> will be the ingress port for any
-         GRE traffic received from 192.168.1.1 with key 5001.
-       </p>
-
-       <p>
-         On egress, traffic may be directed to any appropriate tunnel
-         port.  If both <code>gre0</code> and <code>allgre</code> are
-         configured as already described, then the actions
-         <code>2</code> and
-         <code>set_tunnel:5001,set_field:192.168.1.1->tun_dst,3</code>
-         send the same tunnel traffic.
-       </p>
+        <p>
+          One may define both flow-based and port-based tunnels at the
+          same time.  For example, it is valid and possibly useful to
+          create and configure both <code>gre0</code> and
+          <code>allgre</code> tunnel ports described above.
+        </p>
+
+        <p>
+          Traffic is attributed on ingress to the most specific
+          matching tunnel.  For example, <code>gre0</code> is more
+          specific than <code>allgre</code>.  Therefore, if both
+          exist, then <code>gre0</code> will be the ingress port for any
+          GRE traffic received from 192.168.1.1 with key 5001.
+        </p>
+
+        <p>
+          On egress, traffic may be directed to any appropriate tunnel
+          port.  If both <code>gre0</code> and <code>allgre</code> are
+          configured as already described, then the actions
+          <code>2</code> and
+          <code>set_tunnel:5001,set_field:192.168.1.1->tun_dst,3</code>
+          send the same tunnel traffic.
+        </p>
       </dd>
 
       <dt>Intermediate models.</dt>
       <dd>
-       Ports may be configured as partially flow-based.  For example,
-       one may define an OpenFlow port that represents tunnels
-       between a pair of endpoints but leaves the flow table to
-       discriminate on the flow key.
+        Ports may be configured as partially flow-based.  For example,
+        one may define an OpenFlow port that represents tunnels
+        between a pair of endpoints but leaves the flow table to
+        discriminate on the flow key.
       </dd>
     </dl>
 
@@ -1446,155 +1446,155 @@ ovs-ofctl add-flow br-int 'in_port=3,tun_src=192.168.1.1,tun_id=5001 actions=1'
 
     <field id="MFF_TUN_ID" title="Tunnel ID">
       <p>
-       Many kinds of tunnels support a tunnel ID:
+        Many kinds of tunnels support a tunnel ID:
       </p>
 
       <ul>
-       <li>
+        <li>
           VXLAN and Geneve have a 24-bit virtual network identifier (VNI).
         </li>
-       <li>LISP has a 24-bit instance ID.</li>
-       <li>GRE has an optional 32-bit key.</li>
-       <li>STT has a 64-bit key.</li>
+        <li>LISP has a 24-bit instance ID.</li>
+        <li>GRE has an optional 32-bit key.</li>
+        <li>STT has a 64-bit key.</li>
     <li>ERSPAN has a 10-bit key (Session ID).</li>
       </ul>
 
       <p>
-       When a packet is received from a tunnel, this field holds the
-       tunnel ID in its least significant bits, zero-extended to fit.
-       This field is zero if the tunnel does not support an ID, or if
-       no ID is in use for a tunnel type that has an optional ID, or
-       if an ID of zero received, or if the packet was not received
-       over a tunnel.
+        When a packet is received from a tunnel, this field holds the
+        tunnel ID in its least significant bits, zero-extended to fit.
+        This field is zero if the tunnel does not support an ID, or if
+        no ID is in use for a tunnel type that has an optional ID, or
+        if an ID of zero received, or if the packet was not received
+        over a tunnel.
       </p>
 
       <p>
-       When a packet is output to a tunnel port, the tunnel
-       configuration determines whether the tunnel ID is taken from
-       this field or bound to a fixed value.  See the earlier
-       description of ``port-based'' and ``flow-based'' tunnels for
-       more information.
+        When a packet is output to a tunnel port, the tunnel
+        configuration determines whether the tunnel ID is taken from
+        this field or bound to a fixed value.  See the earlier
+        description of ``port-based'' and ``flow-based'' tunnels for
+        more information.
       </p>
 
       <p>
-       The following diagram shows the origin of this field in a
-       typical keyed GRE tunnel:
+        The following diagram shows the origin of this field in a
+        typical keyed GRE tunnel:
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" below="0x800" width="0.4"/>
-       </header>
-       <header name="IPv4">
-         <bits name="..." width="0.4"/>
-         <bits name="proto" above="8" below="47" width="0.4"/>
-         <bits name="src" above="32" width="0.4"/>
-         <bits name="dst" above="32" width="0.4"/>
-       </header>
-       <header name="GRE">
-         <bits name="..." above="16" width="0.4"/>
-         <bits name="type" above="16" below="0x6558" width="0.4"/>
-         <bits name="key" above="32" width=".4" fill="yes"/>
-       </header>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" width="0.4"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" below="0x800" width="0.4"/>
+        </header>
+        <header name="IPv4">
+          <bits name="..." width="0.4"/>
+          <bits name="proto" above="8" below="47" width="0.4"/>
+          <bits name="src" above="32" width="0.4"/>
+          <bits name="dst" above="32" width="0.4"/>
+        </header>
+        <header name="GRE">
+          <bits name="..." above="16" width="0.4"/>
+          <bits name="type" above="16" below="0x6558" width="0.4"/>
+          <bits name="key" above="32" width=".4" fill="yes"/>
+        </header>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" width="0.4"/>
+        </header>
+        <dots/>
       </diagram>
     </field>
 
     <field id="MFF_TUN_SRC" title="Tunnel IPv4 Source">
       <p>
-       When a packet is received from a tunnel, this field is the
-       source address in the outer IP header of the tunneled packet.
-       This field is zero if the packet was not received over a
-       tunnel.
+        When a packet is received from a tunnel, this field is the
+        source address in the outer IP header of the tunneled packet.
+        This field is zero if the packet was not received over a
+        tunnel.
       </p>
 
       <p>
-       When a packet is output to a flow-based tunnel port, this
-       field influences the IPv4 source address used to send the
-       packet.  If it is zero, then the kernel chooses an appropriate
-       IP address based using the routing table.
+        When a packet is output to a flow-based tunnel port, this
+        field influences the IPv4 source address used to send the
+        packet.  If it is zero, then the kernel chooses an appropriate
+        IP address based using the routing table.
       </p>
 
       <p>
-       The following diagram shows the origin of this field in a
-       typical keyed GRE tunnel:
+        The following diagram shows the origin of this field in a
+        typical keyed GRE tunnel:
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" below="0x800" width="0.4"/>
-       </header>
-       <header name="IPv4">
-         <bits name="..." width="0.4"/>
-         <bits name="proto" above="8" below="47" width="0.4"/>
-         <bits name="src" above="32" width="0.4" fill="yes"/>
-         <bits name="dst" above="32" width="0.4"/>
-       </header>
-       <header name="GRE">
-         <bits name="..." above="16" width="0.4"/>
-         <bits name="type" above="16" below="0x6558" width="0.4"/>
-         <bits name="key" above="32" width=".4"/>
-       </header>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" width="0.4"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" below="0x800" width="0.4"/>
+        </header>
+        <header name="IPv4">
+          <bits name="..." width="0.4"/>
+          <bits name="proto" above="8" below="47" width="0.4"/>
+          <bits name="src" above="32" width="0.4" fill="yes"/>
+          <bits name="dst" above="32" width="0.4"/>
+        </header>
+        <header name="GRE">
+          <bits name="..." above="16" width="0.4"/>
+          <bits name="type" above="16" below="0x6558" width="0.4"/>
+          <bits name="key" above="32" width=".4"/>
+        </header>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" width="0.4"/>
+        </header>
+        <dots/>
       </diagram>
     </field>
 
     <field id="MFF_TUN_DST" title="Tunnel IPv4 Destination">
       <p>
-       When a packet is received from a tunnel, this field is the
-       destination address in the outer IP header of the tunneled
-       packet.  This field is zero if the packet was not received
-       over a tunnel.
+        When a packet is received from a tunnel, this field is the
+        destination address in the outer IP header of the tunneled
+        packet.  This field is zero if the packet was not received
+        over a tunnel.
       </p>
 
       <p>
-       When a packet is output to a flow-based tunnel port, this
-       field specifies the destination to which the tunnel packet is
-       sent.
+        When a packet is output to a flow-based tunnel port, this
+        field specifies the destination to which the tunnel packet is
+        sent.
       </p>
 
       <p>
-       The following diagram shows the origin of this field in a
-       typical keyed GRE tunnel:
+        The following diagram shows the origin of this field in a
+        typical keyed GRE tunnel:
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" below="0x800" width="0.4"/>
-       </header>
-       <header name="IPv4">
-         <bits name="..." width="0.4"/>
-         <bits name="proto" above="8" below="47" width="0.4"/>
-         <bits name="src" above="32" width="0.4"/>
-         <bits name="dst" above="32" width="0.4" fill="yes"/>
-       </header>
-       <header name="GRE">
-         <bits name="..." above="16" width="0.4"/>
-         <bits name="type" above="16" below="0x6558" width="0.4"/>
-         <bits name="key" above="32" width=".4"/>
-       </header>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" width="0.4"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" below="0x800" width="0.4"/>
+        </header>
+        <header name="IPv4">
+          <bits name="..." width="0.4"/>
+          <bits name="proto" above="8" below="47" width="0.4"/>
+          <bits name="src" above="32" width="0.4"/>
+          <bits name="dst" above="32" width="0.4" fill="yes"/>
+        </header>
+        <header name="GRE">
+          <bits name="..." above="16" width="0.4"/>
+          <bits name="type" above="16" below="0x6558" width="0.4"/>
+          <bits name="key" above="32" width=".4"/>
+        </header>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" width="0.4"/>
+        </header>
+        <dots/>
       </diagram>
     </field>
 
@@ -1822,16 +1822,16 @@ ovs-ofctl add-flow br-int 'in_port=3,tun_src=192.168.1.1,tun_id=5001 actions=1'
       </p>
 
       <diagram>
-       <header name="header">
-         <bits name="class" above="16" width="0.6"/>
-         <bits name="type" above="8" width="0.5"/>
-         <bits name="res" above="3" below="0" width="0.25"/>
-         <bits name="length" above="5" width="0.4"/>
-       </header>
+        <header name="header">
+          <bits name="class" above="16" width="0.6"/>
+          <bits name="type" above="8" width="0.5"/>
+          <bits name="res" above="3" below="0" width="0.25"/>
+          <bits name="length" above="5" width="0.4"/>
+        </header>
         <nospace/>
-       <header name="body">
-         <bits name="value" above="4×(length - 1) bytes" width="1.7"/>
-       </header>
+        <header name="body">
+          <bits name="value" above="4×(length - 1) bytes" width="1.7"/>
+        </header>
       </diagram>
 
       <p>
@@ -1996,167 +1996,167 @@ ovs-ofctl add-flow br0 tun_metadata0=1234,actions=controller
 
     <field id="MFF_IN_PORT" title="Ingress Port">
       <p>
-       The OpenFlow port on which the packet being processed arrived.
-       This is a 16-bit field that holds an OpenFlow 1.0 port number.
-       For receiving a packet, the only values that appear in this
-       field are:
+        The OpenFlow port on which the packet being processed arrived.
+        This is a 16-bit field that holds an OpenFlow 1.0 port number.
+        For receiving a packet, the only values that appear in this
+        field are:
       </p>
 
       <dl>
-       <dt>1 through <code>0xfeff</code> (65,279), inclusive.</dt>
-       <dd>
-         Conventional OpenFlow port numbers.
-       </dd>
-
-       <dt><code>OFPP_LOCAL</code> (<code>0xfffe</code> or 65,534).</dt>
-       <dd>
-         <p>
-           The ``local'' port, which in Open vSwitch is always named
-           the same as the bridge itself.  This represents a
-           connection between the switch and the local TCP/IP stack.
-           This port is where an IP address is most commonly
-           configured on an Open vSwitch switch.
-         </p>
-
-         <p>
-           OpenFlow does not require a switch to have a local port,
-           but all existing versions of Open vSwitch have always
-           included a local port.  <b>Future Directions:</b> Future
-           versions of Open vSwitch might be able to optionally omit
-           the local port, if someone submits code to implement such
-           a feature.
-         </p>
-       </dd>
-
-       <dt><code>OFPP_NONE</code> (OpenFlow 1.0) or <code>OFPP_ANY</code> (OpenFlow 1.1+) (<code>0xffff</code> or 65,535).</dt>
-       <dt><code>OFPP_CONTROLLER</code> (<code>0xfffd</code> or 65,533).</dt>
-       <dd>
-         <p>
-           When a controller injects a packet into an OpenFlow switch
-           with a ``packet-out'' request, it can specify one of these
-           ingress ports to indicate that the packet was generated
-           internally rather than having been received on some port.
-         </p>
-
-         <p>
-           OpenFlow 1.0 specified <code>OFPP_NONE</code> for this
-           purpose.  Despite that, some controllers used
-           <code>OFPP_CONTROLLER</code>, and some switches only
-           accepted <code>OFPP_CONTROLLER</code>, so OpenFlow 1.0.2
-           required support for both ports.  OpenFlow 1.1 and later
-           were more clearly drafted to allow only
-           <code>OFPP_CONTROLLER</code>.  For maximum compatibility,
-           Open vSwitch allows both ports with all OpenFlow versions.
-         </p>
-       </dd>
+        <dt>1 through <code>0xfeff</code> (65,279), inclusive.</dt>
+        <dd>
+          Conventional OpenFlow port numbers.
+        </dd>
+
+        <dt><code>OFPP_LOCAL</code> (<code>0xfffe</code> or 65,534).</dt>
+        <dd>
+          <p>
+            The ``local'' port, which in Open vSwitch is always named
+            the same as the bridge itself.  This represents a
+            connection between the switch and the local TCP/IP stack.
+            This port is where an IP address is most commonly
+            configured on an Open vSwitch switch.
+          </p>
+
+          <p>
+            OpenFlow does not require a switch to have a local port,
+            but all existing versions of Open vSwitch have always
+            included a local port.  <b>Future Directions:</b> Future
+            versions of Open vSwitch might be able to optionally omit
+            the local port, if someone submits code to implement such
+            a feature.
+          </p>
+        </dd>
+
+        <dt><code>OFPP_NONE</code> (OpenFlow 1.0) or <code>OFPP_ANY</code> (OpenFlow 1.1+) (<code>0xffff</code> or 65,535).</dt>
+        <dt><code>OFPP_CONTROLLER</code> (<code>0xfffd</code> or 65,533).</dt>
+        <dd>
+          <p>
+            When a controller injects a packet into an OpenFlow switch
+            with a ``packet-out'' request, it can specify one of these
+            ingress ports to indicate that the packet was generated
+            internally rather than having been received on some port.
+          </p>
+
+          <p>
+            OpenFlow 1.0 specified <code>OFPP_NONE</code> for this
+            purpose.  Despite that, some controllers used
+            <code>OFPP_CONTROLLER</code>, and some switches only
+            accepted <code>OFPP_CONTROLLER</code>, so OpenFlow 1.0.2
+            required support for both ports.  OpenFlow 1.1 and later
+            were more clearly drafted to allow only
+            <code>OFPP_CONTROLLER</code>.  For maximum compatibility,
+            Open vSwitch allows both ports with all OpenFlow versions.
+          </p>
+        </dd>
       </dl>
 
       <p>
-       Values not mentioned above will never appear when receiving a
-       packet, including the following notable values:
+        Values not mentioned above will never appear when receiving a
+        packet, including the following notable values:
       </p>
 
       <dl>
-       <dt>0</dt>
-       <dd>
-         Zero is not a valid OpenFlow port number.
-       </dd>
-
-       <dt><code>OFPP_MAX</code> (<code>0xff00</code> or 65,280).</dt>
-       <dd>
-         This value has only been clearly specified as a valid port
-         number as of OpenFlow 1.3.3.  Before that, its status was
-         unclear, and so Open vSwitch has never allowed
-         <code>OFPP_MAX</code> to be used as a port number, so
-         packets will never be received on this port.  (Other
-         OpenFlow switches, of course, might use it.)
-       </dd>
+        <dt>0</dt>
+        <dd>
+          Zero is not a valid OpenFlow port number.
+        </dd>
+
+        <dt><code>OFPP_MAX</code> (<code>0xff00</code> or 65,280).</dt>
+        <dd>
+          This value has only been clearly specified as a valid port
+          number as of OpenFlow 1.3.3.  Before that, its status was
+          unclear, and so Open vSwitch has never allowed
+          <code>OFPP_MAX</code> to be used as a port number, so
+          packets will never be received on this port.  (Other
+          OpenFlow switches, of course, might use it.)
+        </dd>
 
         <dt><code>OFPP_UNSET</code> (<code>0xfff7</code> or 65,527)</dt>
-       <dt><code>OFPP_IN_PORT</code> (<code>0xfff8</code> or 65,528)</dt>
-       <dt><code>OFPP_TABLE</code> (<code>0xfff9</code> or 65,529)</dt>
-       <dt><code>OFPP_NORMAL</code> (<code>0xfffa</code> or 65,530)</dt>
-       <dt><code>OFPP_FLOOD</code> (<code>0xfffb</code> or 65,531)</dt>
-       <dt><code>OFPP_ALL</code> (<code>0xfffc</code> or 65,532)</dt>
-       <dd>
+        <dt><code>OFPP_IN_PORT</code> (<code>0xfff8</code> or 65,528)</dt>
+        <dt><code>OFPP_TABLE</code> (<code>0xfff9</code> or 65,529)</dt>
+        <dt><code>OFPP_NORMAL</code> (<code>0xfffa</code> or 65,530)</dt>
+        <dt><code>OFPP_FLOOD</code> (<code>0xfffb</code> or 65,531)</dt>
+        <dt><code>OFPP_ALL</code> (<code>0xfffc</code> or 65,532)</dt>
+        <dd>
           <p>
-           These port numbers are used only in output actions and never
-           appear as ingress ports.
+            These port numbers are used only in output actions and never
+            appear as ingress ports.
           </p>
 
           <p>
             Most of these port numbers were defined in OpenFlow 1.0, but
             <code>OFPP_UNSET</code> was only introduced in OpenFlow 1.5.
           </p>
-       </dd>
+        </dd>
       </dl>
 
       <p>
-       Values that will never appear when receiving a packet may
-       still be matched against in the flow table.  There are still
-       circumstances in which those flows can be matched:
+        Values that will never appear when receiving a packet may
+        still be matched against in the flow table.  There are still
+        circumstances in which those flows can be matched:
       </p>
 
       <ul>
-       <li>
-         The <code>resubmit</code> Open vSwitch extension action allows a
-         flow table lookup with an arbitrary ingress port.
-       </li>
-
-       <li>
-         An action that modifies the ingress port field (see below),
-         such as e.g. <code>load</code> or <code>set_field</code>,
-         followed by an action or instruction that performs another
-         flow table lookup, such as <code>resubmit</code> or
-         <code>goto_table</code>.
-       </li>
+        <li>
+          The <code>resubmit</code> Open vSwitch extension action allows a
+          flow table lookup with an arbitrary ingress port.
+        </li>
+
+        <li>
+          An action that modifies the ingress port field (see below),
+          such as e.g. <code>load</code> or <code>set_field</code>,
+          followed by an action or instruction that performs another
+          flow table lookup, such as <code>resubmit</code> or
+          <code>goto_table</code>.
+        </li>
       </ul>
 
       <p>
-       This field is heavily used for matching in OpenFlow tables,
-       but for packet egress, it has only very limited roles:
+        This field is heavily used for matching in OpenFlow tables,
+        but for packet egress, it has only very limited roles:
       </p>
 
       <ul>
-       <li>
-         <p>
-           OpenFlow requires suppressing output actions to <ref
-           field="in_port"/>.  That is, the following two flows both drop all
-           packets that arrive on port 1:
-         </p>
-
-         <pre>
+        <li>
+          <p>
+            OpenFlow requires suppressing output actions to <ref
+            field="in_port"/>.  That is, the following two flows both drop all
+            packets that arrive on port 1:
+          </p>
+
+          <pre>
 in_port=1,actions=1
 in_port=1,actions=drop
-         </pre>
-
-         <p>
-           (This behavior is occasionally useful for flooding to a
-           subset of ports.  Specifying <code>actions=1,2,3,4</code>,
-           for example, outputs to ports 1, 2, 3, and 4, omitting the
-           ingress port.)
-         </p>
-       </li>
-
-       <li>
-         OpenFlow has a special port <code>OFPP_IN_PORT</code> (with
-         value 0xfff8) that outputs to the ingress port.  For example,
-         in a switch that has four ports numbered 1 through 4,
-         <code>actions=1,2,3,4,in_port</code> outputs to ports 1, 2,
-         3, and 4, including the ingress port.
-       </li>
+          </pre>
+
+          <p>
+            (This behavior is occasionally useful for flooding to a
+            subset of ports.  Specifying <code>actions=1,2,3,4</code>,
+            for example, outputs to ports 1, 2, 3, and 4, omitting the
+            ingress port.)
+          </p>
+        </li>
+
+        <li>
+          OpenFlow has a special port <code>OFPP_IN_PORT</code> (with
+          value 0xfff8) that outputs to the ingress port.  For example,
+          in a switch that has four ports numbered 1 through 4,
+          <code>actions=1,2,3,4,in_port</code> outputs to ports 1, 2,
+          3, and 4, including the ingress port.
+        </li>
       </ul>
 
       <p>
-       Because the ingress port field has so little influence on packet
-       processing, it does not ordinarily make sense to modify the
-       ingress port field.  The field is writable only to support the
-       occasional use case where the ingress port's roles in packet
-       egress, described above, become troublesome.  For example,
-       <code>actions=load:0-&gt;NXM_OF_IN_PORT[],output:123</code>
-       will output to port 123 regardless of whether it is in the
-       ingress port.  If the ingress port is important, then one may save
-       and restore it on the stack:
+        Because the ingress port field has so little influence on packet
+        processing, it does not ordinarily make sense to modify the
+        ingress port field.  The field is writable only to support the
+        occasional use case where the ingress port's roles in packet
+        egress, described above, become troublesome.  For example,
+        <code>actions=load:0-&gt;NXM_OF_IN_PORT[],output:123</code>
+        will output to port 123 regardless of whether it is in the
+        ingress port.  If the ingress port is important, then one may save
+        and restore it on the stack:
       </p>
 
       <pre>
@@ -2173,154 +2173,154 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
       </pre>
 
       <p>
-       The ability to modify the ingress port is an Open vSwitch
-       extension to OpenFlow.
+        The ability to modify the ingress port is an Open vSwitch
+        extension to OpenFlow.
       </p>
     </field>
 
     <field id="MFF_IN_PORT_OXM" title="OXM Ingress Port">
       <p>
-       OpenFlow 1.1 and later use a 32-bit port number, so this field
-       supplies a 32-bit view of the ingress port.  Current versions of
-       Open vSwitch support only a 16-bit range of ports:
+        OpenFlow 1.1 and later use a 32-bit port number, so this field
+        supplies a 32-bit view of the ingress port.  Current versions of
+        Open vSwitch support only a 16-bit range of ports:
       </p>
 
       <ul>
-       <li>
-         OpenFlow 1.0 ports <code>0x0000</code> to
-         <code>0xfeff</code>, inclusive, map to OpenFlow 1.1
-         port numbers with the same values.
-       </li>
-
-       <li>
-         OpenFlow 1.0 ports <code>0xff00</code> to
-         <code>0xffff</code>, inclusive, map to OpenFlow 1.1 port
-         numbers <code>0xffffff00</code> to <code>0xffffffff</code>.
-       </li>
-
-       <li>
-         OpenFlow 1.1 ports <code>0x0000ff00</code> to
-         <code>0xfffffeff</code> are not mapped and not supported.
-       </li>
+        <li>
+          OpenFlow 1.0 ports <code>0x0000</code> to
+          <code>0xfeff</code>, inclusive, map to OpenFlow 1.1
+          port numbers with the same values.
+        </li>
+
+        <li>
+          OpenFlow 1.0 ports <code>0xff00</code> to
+          <code>0xffff</code>, inclusive, map to OpenFlow 1.1 port
+          numbers <code>0xffffff00</code> to <code>0xffffffff</code>.
+        </li>
+
+        <li>
+          OpenFlow 1.1 ports <code>0x0000ff00</code> to
+          <code>0xfffffeff</code> are not mapped and not supported.
+        </li>
       </ul>
 
       <p>
-       <ref field="in_port"/> and <ref field="in_port_oxm"/> are two views of
-       the same information, so all of the comments on <ref field="in_port"/>
-       apply to <ref field="in_port_oxm"/> too.  Modifying <ref
-       field="in_port"/> changes <ref field="in_port_oxm"/>, and vice versa.
+        <ref field="in_port"/> and <ref field="in_port_oxm"/> are two views of
+        the same information, so all of the comments on <ref field="in_port"/>
+        apply to <ref field="in_port_oxm"/> too.  Modifying <ref
+        field="in_port"/> changes <ref field="in_port_oxm"/>, and vice versa.
       </p>
 
       <p>
-       Setting <ref field="in_port_oxm"/> to an unsupported value yields
-       unspecified behavior.
+        Setting <ref field="in_port_oxm"/> to an unsupported value yields
+        unspecified behavior.
       </p>
     </field>
 
     <field id="MFF_SKB_PRIORITY" title="Output Queue">
       <p>
-       <b>Future Directions:</b> Open vSwitch implements the output queue as a
-       field, but does not currently expose it through OXM or NXM for matching
-       purposes.  If this turns out to be a useful feature, it could be
-       implemented in future versions.  Only the <code>set_queue</code>,
-       <code>enqueue</code>, and <code>pop_queue</code> actions currently
-       influence the output queue.
+        <b>Future Directions:</b> Open vSwitch implements the output queue as a
+        field, but does not currently expose it through OXM or NXM for matching
+        purposes.  If this turns out to be a useful feature, it could be
+        implemented in future versions.  Only the <code>set_queue</code>,
+        <code>enqueue</code>, and <code>pop_queue</code> actions currently
+        influence the output queue.
       </p>
 
       <p>
-       This field influences how packets in the flow will be queued,
-       for quality of service (QoS) purposes, when they egress the
-       switch.  Its range of meaningful values, and their meanings,
-       varies greatly from one OpenFlow implementation to another.
-       Even within a single implementation, there is no guarantee
-       that all OpenFlow ports have the same queues configured or
-       that all OpenFlow ports in an implementation can be configured
-       the same way queue-wise.
+        This field influences how packets in the flow will be queued,
+        for quality of service (QoS) purposes, when they egress the
+        switch.  Its range of meaningful values, and their meanings,
+        varies greatly from one OpenFlow implementation to another.
+        Even within a single implementation, there is no guarantee
+        that all OpenFlow ports have the same queues configured or
+        that all OpenFlow ports in an implementation can be configured
+        the same way queue-wise.
       </p>
 
       <p>
-       Configuring queues on OpenFlow is not well standardized.  On
-       Linux, Open vSwitch supports queue configuration via OVSDB,
-       specifically the <code>QoS</code> and <code>Queue</code>
-       tables (see <code>ovs-vswitchd.conf.db(5)</code> for details).
-       Ports of Open vSwitch to other platforms might require queue
-       configuration through some separate protocol (such as a CLI).
-       Even on Linux, Open vSwitch exposes only a fraction of the
-       kernel's queuing features through OVSDB, so advanced or
-       unusual uses might require use of separate utilities
-       (e.g. <code>tc</code>).  OpenFlow switches other than Open
-       vSwitch might use OF-CONFIG or any of the configuration
-       methods mentioned above.  Finally, some OpenFlow switches have
-       a fixed number of fixed-function queues (e.g. eight queues
-       with strictly defined priorities) and others do not support
-       any control over queuing.
+        Configuring queues on OpenFlow is not well standardized.  On
+        Linux, Open vSwitch supports queue configuration via OVSDB,
+        specifically the <code>QoS</code> and <code>Queue</code>
+        tables (see <code>ovs-vswitchd.conf.db(5)</code> for details).
+        Ports of Open vSwitch to other platforms might require queue
+        configuration through some separate protocol (such as a CLI).
+        Even on Linux, Open vSwitch exposes only a fraction of the
+        kernel's queuing features through OVSDB, so advanced or
+        unusual uses might require use of separate utilities
+        (e.g. <code>tc</code>).  OpenFlow switches other than Open
+        vSwitch might use OF-CONFIG or any of the configuration
+        methods mentioned above.  Finally, some OpenFlow switches have
+        a fixed number of fixed-function queues (e.g. eight queues
+        with strictly defined priorities) and others do not support
+        any control over queuing.
       </p>
 
       <p>
-       The only output queue that all OpenFlow implementations must
-       support is zero, to identify a default queue, whose properties
-       are implementation-defined.  Outputting a packet to a queue
-       that does not exist on the output port yields unpredictable
-       behavior: among the possibilities are that the packet might be
-       dropped or transmitted with a very high or very low priority.
+        The only output queue that all OpenFlow implementations must
+        support is zero, to identify a default queue, whose properties
+        are implementation-defined.  Outputting a packet to a queue
+        that does not exist on the output port yields unpredictable
+        behavior: among the possibilities are that the packet might be
+        dropped or transmitted with a very high or very low priority.
       </p>
 
       <p>
-       OpenFlow 1.0 only allowed output queues to be specified as part of an
-       <code>enqueue</code> action that specified both a queue and an output
-       port.  That is, OpenFlow 1.0 treats the queue as an argument to an
-       action, not as a field.
+        OpenFlow 1.0 only allowed output queues to be specified as part of an
+        <code>enqueue</code> action that specified both a queue and an output
+        port.  That is, OpenFlow 1.0 treats the queue as an argument to an
+        action, not as a field.
       </p>
 
       <p>
-       To increase flexibility, OpenFlow 1.1 added an action to set the output
-       queue.  This model was carried forward, without change, through
-       OpenFlow 1.5.
+        To increase flexibility, OpenFlow 1.1 added an action to set the output
+        queue.  This model was carried forward, without change, through
+        OpenFlow 1.5.
       </p>
 
       <p>
-       Open vSwitch implements the native queuing model of each
-       OpenFlow version it supports.  Open vSwitch also includes an
-       extension for setting the output queue as an action in
-       OpenFlow 1.0.
+        Open vSwitch implements the native queuing model of each
+        OpenFlow version it supports.  Open vSwitch also includes an
+        extension for setting the output queue as an action in
+        OpenFlow 1.0.
       </p>
 
       <p>
-       When a packet ingresses into an OpenFlow switch, the output
-       queue is ordinarily set to 0, indicating the default queue.
-       However, Open vSwitch supports various ways to forward a
-       packet from one OpenFlow switch to another within a single
-       host.  In these cases, Open vSwitch maintains the output queue
-       across the forwarding step.  For example:
+        When a packet ingresses into an OpenFlow switch, the output
+        queue is ordinarily set to 0, indicating the default queue.
+        However, Open vSwitch supports various ways to forward a
+        packet from one OpenFlow switch to another within a single
+        host.  In these cases, Open vSwitch maintains the output queue
+        across the forwarding step.  For example:
       </p>
 
       <ul>
-       <li>
-         A hop across an Open vSwitch ``patch port'' (which does not
-         actually involve queuing) preserves the output queue.
-       </li>
-
-       <li>
-         <p>
-           When a flow sets the output queue then outputs to an
-           OpenFlow tunnel port, the encapsulation preserves the
-           output queue.  If the kernel TCP/IP stack routes the
-           encapsulated packet directly to a physical interface, then
-           that output honors the output queue.  Alternatively, if
-           the kernel routes the encapsulated packet to another Open
-           vSwitch bridge, then the output queue set previously
-           becomes the initial output queue on ingress to the second
-           bridge and will thus be used for further output actions
-           (unless overridden by a new ``set queue'' action).
-         </p>
-
-         <p>
-           (This description reflects the current behavior of Open
-           vSwitch on Linux.  This behavior relies on details of the
-           Linux TCP/IP stack.  It could be difficult to make ports
-           to other operating systems behave the same way.)
-         </p>
-       </li>
+        <li>
+          A hop across an Open vSwitch ``patch port'' (which does not
+          actually involve queuing) preserves the output queue.
+        </li>
+
+        <li>
+          <p>
+            When a flow sets the output queue then outputs to an
+            OpenFlow tunnel port, the encapsulation preserves the
+            output queue.  If the kernel TCP/IP stack routes the
+            encapsulated packet directly to a physical interface, then
+            that output honors the output queue.  Alternatively, if
+            the kernel routes the encapsulated packet to another Open
+            vSwitch bridge, then the output queue set previously
+            becomes the initial output queue on ingress to the second
+            bridge and will thus be used for further output actions
+            (unless overridden by a new ``set queue'' action).
+          </p>
+
+          <p>
+            (This description reflects the current behavior of Open
+            vSwitch on Linux.  This behavior relies on details of the
+            Linux TCP/IP stack.  It could be difficult to make ports
+            to other operating systems behave the same way.)
+          </p>
+        </li>
       </ul>
     </field>
 
@@ -2341,31 +2341,31 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
       </p>
 
       <p>
-       Packet mark is an attempt at a generalization of the
-       <code>skb_mark</code> concept beyond Linux, at least through more
-       generic naming.  Like <ref field="skb_priority"/>, packet mark is
-       preserved across forwarding steps within a machine.  Unlike <ref
-       field="skb_priority"/>, packet mark has no direct effect on packet
-       forwarding: the value set in packet mark does not matter unless some
-       later OpenFlow table or switch matches on packet mark, or unless the
-       packet passes through some other kernel subsystem that has been
-       configured to interpret packet mark in specific ways, e.g. through
-       <code>iptables</code> configuration mentioned above.
+        Packet mark is an attempt at a generalization of the
+        <code>skb_mark</code> concept beyond Linux, at least through more
+        generic naming.  Like <ref field="skb_priority"/>, packet mark is
+        preserved across forwarding steps within a machine.  Unlike <ref
+        field="skb_priority"/>, packet mark has no direct effect on packet
+        forwarding: the value set in packet mark does not matter unless some
+        later OpenFlow table or switch matches on packet mark, or unless the
+        packet passes through some other kernel subsystem that has been
+        configured to interpret packet mark in specific ways, e.g. through
+        <code>iptables</code> configuration mentioned above.
       </p>
 
       <p>
-       Preserving packet mark across kernel forwarding steps relies
-       heavily on kernel support, which ports to non-Linux operating
-       systems may not have.  Regardless of operating system support,
-       Open vSwitch supports packet mark within a single bridge and
-       across patch ports.
+        Preserving packet mark across kernel forwarding steps relies
+        heavily on kernel support, which ports to non-Linux operating
+        systems may not have.  Regardless of operating system support,
+        Open vSwitch supports packet mark within a single bridge and
+        across patch ports.
       </p>
 
       <p>
-       The value of packet mark when a packet ingresses into the
-       first Open vSwich bridge is typically zero, but it could be
-       nonzero if its value was previously set by some kernel
-       subsystem.
+        The value of packet mark when a packet ingresses into the
+        first Open vSwich bridge is typically zero, but it could be
+        nonzero if its value was previously set by some kernel
+        subsystem.
       </p>
     </field>
 
@@ -2395,11 +2395,11 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
       </p>
 
       <diagram>
-       <header name="Packet type">
-         <bits name="ns" above="16" width=".75"/>
-         <bits name="ns_type" above="16" width=".75"/>
-       </header>
-       <dots/>
+        <header name="Packet type">
+          <bits name="ns" above="16" width=".75"/>
+          <bits name="ns_type" above="16" width=".75"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
@@ -2443,18 +2443,18 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" below="0x800" width="0.4"/>
-       </header>
-       <header name="IPv4">
-         <bits name="..." width="0.4"/>
-         <bits name="proto" above="8" width="0.4"/>
-         <bits name="src" above="32" width="0.4"/>
-         <bits name="dst" above="32" width="0.4"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" below="0x800" width="0.4"/>
+        </header>
+        <header name="IPv4">
+          <bits name="..." width="0.4"/>
+          <bits name="proto" above="8" width="0.4"/>
+          <bits name="src" above="32" width="0.4"/>
+          <bits name="dst" above="32" width="0.4"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
@@ -2463,13 +2463,13 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
       </p>
 
       <diagram>
-       <header name="IPv4">
-         <bits name="..." width="0.4"/>
-         <bits name="proto" above="8" width="0.4"/>
-         <bits name="src" above="32" width="0.4"/>
-         <bits name="dst" above="32" width="0.4"/>
-       </header>
-       <dots/>
+        <header name="IPv4">
+          <bits name="..." width="0.4"/>
+          <bits name="proto" above="8" width="0.4"/>
+          <bits name="src" above="32" width="0.4"/>
+          <bits name="dst" above="32" width="0.4"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
@@ -2796,23 +2796,23 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
 
     <field id="MFF_METADATA" title="OpenFlow Metadata">
       <p>
-       This field is the oldest standardized OpenFlow register field,
-       introduced in OpenFlow 1.1.  It was introduced to model the limited
-       number of user-defined bits that some ASIC-based switches can carry
-       through their pipelines.  Because of hardware limitations, OpenFlow
-       allows switches to support writing and masking only an
-       implementation-defined subset of bits, even no bits at all.  The Open
-       vSwitch software switch always supports all 64 bits, but of course an
-       Open vSwitch port to an ASIC would have the same restriction as the
-       ASIC itself.
+        This field is the oldest standardized OpenFlow register field,
+        introduced in OpenFlow 1.1.  It was introduced to model the limited
+        number of user-defined bits that some ASIC-based switches can carry
+        through their pipelines.  Because of hardware limitations, OpenFlow
+        allows switches to support writing and masking only an
+        implementation-defined subset of bits, even no bits at all.  The Open
+        vSwitch software switch always supports all 64 bits, but of course an
+        Open vSwitch port to an ASIC would have the same restriction as the
+        ASIC itself.
       </p>
 
       <p>
-       This field has an OXM code point, but OpenFlow 1.4 and earlier allow it
-       to be modified only with a specialized instruction, not with a
-       ``set-field'' action.  OpenFlow 1.5 removes this restriction.  Open
-       vSwitch does not enforce this restriction, regardless of OpenFlow
-       version.
+        This field has an OXM code point, but OpenFlow 1.4 and earlier allow it
+        to be modified only with a specialized instruction, not with a
+        ``set-field'' action.  OpenFlow 1.5 removes this restriction.  Open
+        vSwitch does not enforce this restriction, regardless of OpenFlow
+        version.
       </p>
     </field>
 
@@ -2910,27 +2910,27 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width=".75"/>
-         <bits name="src" above="48" width=".75" fill="yes"/>
-         <bits name="type" above="16" width="0.4"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width=".75"/>
+          <bits name="src" above="48" width=".75" fill="yes"/>
+          <bits name="type" above="16" width="0.4"/>
+        </header>
+        <dots/>
       </diagram>
     </field>
 
     <field id="MFF_ETH_DST" title="Ethernet Destination">
       <p>
-       The Ethernet destination address:
+        The Ethernet destination address:
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width=".75" fill="yes"/>
-         <bits name="src" above="48" width=".75"/>
-         <bits name="type" above="16" width="0.4"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width=".75" fill="yes"/>
+          <bits name="src" above="48" width=".75"/>
+          <bits name="type" above="16" width="0.4"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
@@ -2969,108 +2969,108 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
 
     <field id="MFF_ETH_TYPE" title="Ethernet Type">
       <p>
-       The most commonly seen Ethernet frames today use a format
-       called ``Ethernet II,'' in which the last two bytes of the
-       Ethernet header specify the Ethertype.  For such a frame, this
-       field is copied from those bytes of the header, like so:
+        The most commonly seen Ethernet frames today use a format
+        called ``Ethernet II,'' in which the last two bytes of the
+        Ethernet header specify the Ethertype.  For such a frame, this
+        field is copied from those bytes of the header, like so:
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width=".75"/>
-         <bits name="src" above="48" width=".75"/>
-         <bits name="type" above="16" below="\[&gt;=]0x600" width="0.4" fill="yes"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width=".75"/>
+          <bits name="src" above="48" width=".75"/>
+          <bits name="type" above="16" below="\[&gt;=]0x600" width="0.4" fill="yes"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
-       Every Ethernet type has a value 0x600 (1,536) or greater.
-       When the last two bytes of the Ethernet header have a value
-       too small to be an Ethernet type, then the value found there
-       is the total length of the frame in bytes, excluding the
-       Ethernet header.  An 802.2 LLC header typically follows the
-       Ethernet header.  OpenFlow and Open vSwitch only support LLC
-       headers with DSAP and SSAP <code>0xaa</code> and control byte
-       <code>0x03</code>, which indicate that a SNAP header follows
-       the LLC header.  In turn, OpenFlow and Open vSwitch only
-       support a SNAP header with organization <code>0x000000</code>.
-       In such a case, this field is copied from the type field in
-       the SNAP header, like this:
+        Every Ethernet type has a value 0x600 (1,536) or greater.
+        When the last two bytes of the Ethernet header have a value
+        too small to be an Ethernet type, then the value found there
+        is the total length of the frame in bytes, excluding the
+        Ethernet header.  An 802.2 LLC header typically follows the
+        Ethernet header.  OpenFlow and Open vSwitch only support LLC
+        headers with DSAP and SSAP <code>0xaa</code> and control byte
+        <code>0x03</code>, which indicate that a SNAP header follows
+        the LLC header.  In turn, OpenFlow and Open vSwitch only
+        support a SNAP header with organization <code>0x000000</code>.
+        In such a case, this field is copied from the type field in
+        the SNAP header, like this:
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width=".75"/>
-         <bits name="src" above="48" width=".75"/>
-         <bits name="type" above="16" below="&lt;0x600" width="0.4"/>
-       </header>
-       <header name="LLC">
-         <bits name="DSAP" above="8" below="0xaa" width=".4"/>
-         <bits name="SSAP" above="8" below="0xaa" width=".4"/>
-         <bits name="cntl" above="8" below="0x03" width=".4"/>
-       </header>
-       <header name="SNAP">
-         <bits name="org" above="24" below="0x000000" width=".75"/>
-         <bits name="type" above="16" below="\[&gt;=]0x600" width=".4" fill="yes"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width=".75"/>
+          <bits name="src" above="48" width=".75"/>
+          <bits name="type" above="16" below="&lt;0x600" width="0.4"/>
+        </header>
+        <header name="LLC">
+          <bits name="DSAP" above="8" below="0xaa" width=".4"/>
+          <bits name="SSAP" above="8" below="0xaa" width=".4"/>
+          <bits name="cntl" above="8" below="0x03" width=".4"/>
+        </header>
+        <header name="SNAP">
+          <bits name="org" above="24" below="0x000000" width=".75"/>
+          <bits name="type" above="16" below="\[&gt;=]0x600" width=".4" fill="yes"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
-       When an 802.1Q header is inserted after the Ethernet source
-       and destination, this field is populated with the encapsulated
-       Ethertype, not the 802.1Q Ethertype.  With an Ethernet II
-       inner frame, the result looks like this:
+        When an 802.1Q header is inserted after the Ethernet source
+        and destination, this field is populated with the encapsulated
+        Ethertype, not the 802.1Q Ethertype.  With an Ethernet II
+        inner frame, the result looks like this:
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width=".75"/>
-         <bits name="src" above="48" width=".75"/>
-       </header>
-       <header name="802.1Q">
-         <bits name="TPID" above="16" below="0x8100" width=".4"/>
-         <bits name="TCI" above="16" width=".4"/>
-       </header>
-       <header name="Ethertype">
-         <bits name="type" above="16" below="\[&gt;=]0x600" width=".4" fill="yes"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width=".75"/>
+          <bits name="src" above="48" width=".75"/>
+        </header>
+        <header name="802.1Q">
+          <bits name="TPID" above="16" below="0x8100" width=".4"/>
+          <bits name="TCI" above="16" width=".4"/>
+        </header>
+        <header name="Ethertype">
+          <bits name="type" above="16" below="\[&gt;=]0x600" width=".4" fill="yes"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
-       LLC and SNAP encapsulation look like this with an 802.1Q header:
+        LLC and SNAP encapsulation look like this with an 802.1Q header:
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width=".75"/>
-         <bits name="src" above="48" width=".75"/>
-       </header>
-       <header name="802.1Q">
-         <bits name="TPID" above="16" below="0x8100" width=".4"/>
-         <bits name="TCI" above="16" width=".4"/>
-       </header>
-       <header name="Ethertype">
-         <bits name="type" above="16" below="&lt;0x600" width="0.4"/>
-       </header>
-       <header name="LLC">
-         <bits name="DSAP" above="8" below="0xaa" width=".4"/>
-         <bits name="SSAP" above="8" below="0xaa" width=".4"/>
-         <bits name="cntl" above="8" below="0x03" width=".4"/>
-       </header>
-       <header name="SNAP">
-         <bits name="org" above="24" below="0x000000" width=".75"/>
-         <bits name="type" above="16" below="\[&gt;=]0x600" width=".4" fill="yes"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width=".75"/>
+          <bits name="src" above="48" width=".75"/>
+        </header>
+        <header name="802.1Q">
+          <bits name="TPID" above="16" below="0x8100" width=".4"/>
+          <bits name="TCI" above="16" width=".4"/>
+        </header>
+        <header name="Ethertype">
+          <bits name="type" above="16" below="&lt;0x600" width="0.4"/>
+        </header>
+        <header name="LLC">
+          <bits name="DSAP" above="8" below="0xaa" width=".4"/>
+          <bits name="SSAP" above="8" below="0xaa" width=".4"/>
+          <bits name="cntl" above="8" below="0x03" width=".4"/>
+        </header>
+        <header name="SNAP">
+          <bits name="org" above="24" below="0x000000" width=".75"/>
+          <bits name="type" above="16" below="\[&gt;=]0x600" width=".4" fill="yes"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
-       When a packet doesn't match any of the header formats described
-       above, Open vSwitch and OpenFlow set this field to
-       <code>0x5ff</code> (<code>OFP_DL_TYPE_NOT_ETH_TYPE</code>).
+        When a packet doesn't match any of the header formats described
+        above, Open vSwitch and OpenFlow set this field to
+        <code>0x5ff</code> (<code>OFP_DL_TYPE_NOT_ETH_TYPE</code>).
       </p>
     </field>
   </group>
@@ -3091,13 +3091,13 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
 
     <diagram>
       <header name="TPID">
-       <bits name="Ethertype" above="16" below="0x8100" width="1.8"/>
+        <bits name="Ethertype" above="16" below="0x8100" width="1.8"/>
       </header>
       <nospace/>
       <header name="TCI">
-       <bits name="PCP" above="3" width=".6"/>
-       <bits name="CFI" above="1" below="0" width=".3"/>
-       <bits name="VID" above="12" width=".9"/>
+        <bits name="PCP" above="3" width=".6"/>
+        <bits name="CFI" above="1" below="0" width=".3"/>
+        <bits name="VID" above="12" width=".9"/>
       </header>
     </diagram>
 
@@ -3123,28 +3123,28 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
 
     <ul>
       <li>
-       <dfn>PCP</dfn> (Priority Control Point), is a 3-bit 802.1p
-       <dfn>priority</dfn>.  The lowest priority is value 1, the
-       second-lowest is value 0, and priority increases from 2 up to
-       highest priority 7.
+        <dfn>PCP</dfn> (Priority Control Point), is a 3-bit 802.1p
+        <dfn>priority</dfn>.  The lowest priority is value 1, the
+        second-lowest is value 0, and priority increases from 2 up to
+        highest priority 7.
       </li>
 
       <li>
         <p>
-         <dfn>CFI</dfn> (Canonical Format Indicator), is a 1-bit field.  On an
-         Ethernet network, its value is always 0.  This led to it later being
-         repurposed under the name <dfn>DEI</dfn> (Drop Eligibility
-         Indicator).  By either name, OpenFlow and Open vSwitch don't provide
-         any way to match or set this bit.
+          <dfn>CFI</dfn> (Canonical Format Indicator), is a 1-bit field.  On an
+          Ethernet network, its value is always 0.  This led to it later being
+          repurposed under the name <dfn>DEI</dfn> (Drop Eligibility
+          Indicator).  By either name, OpenFlow and Open vSwitch don't provide
+          any way to match or set this bit.
         </p>
       </li>
 
       <li>
-       <dfn>VID</dfn> (VLAN IDentifier), is a 12-bit VLAN.  If the
-       VID is 0, then the frame is not part of a VLAN.  In that case,
-       the VLAN header is called a <dfn>priority tag</dfn> because it
-       is only meaningful for assigning the frame a priority.  VID
-       <code>0xfff</code> (4,095) is reserved.
+        <dfn>VID</dfn> (VLAN IDentifier), is a 12-bit VLAN.  If the
+        VID is 0, then the frame is not part of a VLAN.  In that case,
+        the VLAN header is called a <dfn>priority tag</dfn> because it
+        is only meaningful for assigning the frame a priority.  VID
+        <code>0xfff</code> (4,095) is reserved.
       </li>
     </ul>
 
@@ -3190,9 +3190,9 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
 
     <ul>
       <li>
-       When both <code>dl_vlan</code> and <code>dl_vlan_pcp</code> are
-       wildcarded, the flow matches packets without an 802.1Q header or
-       with any 802.1Q header.
+        When both <code>dl_vlan</code> and <code>dl_vlan_pcp</code> are
+        wildcarded, the flow matches packets without an 802.1Q header or
+        with any 802.1Q header.
       </li>
 
       <li>
@@ -3204,27 +3204,27 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
       </li>
 
       <li>
-       <p>
-         Otherwise, the flow matches only packets with an 802.1Q
-         header.  If <code>dl_vlan</code> is not wildcarded, then the
-         flow only matches packets with the VLAN ID specified in
-         <code>dl_vlan</code>'s low 12 bits.  If
-         <code>dl_vlan_pcp</code> is not wildcarded, then the flow
-         only matches packets with the priority specified in
-         <code>dl_vlan_pcp</code>'s low 3 bits.
-       </p>
-
-       <p>
-         OpenFlow does not specify how to interpret the high 4 bits of
-         <code>dl_vlan</code> or the high 5 bits of <code>dl_vlan_pcp</code>.
-         Open vSwitch ignores them.
-       </p>
+        <p>
+          Otherwise, the flow matches only packets with an 802.1Q
+          header.  If <code>dl_vlan</code> is not wildcarded, then the
+          flow only matches packets with the VLAN ID specified in
+          <code>dl_vlan</code>'s low 12 bits.  If
+          <code>dl_vlan_pcp</code> is not wildcarded, then the flow
+          only matches packets with the priority specified in
+          <code>dl_vlan_pcp</code>'s low 3 bits.
+        </p>
+
+        <p>
+          OpenFlow does not specify how to interpret the high 4 bits of
+          <code>dl_vlan</code> or the high 5 bits of <code>dl_vlan_pcp</code>.
+          Open vSwitch ignores them.
+        </p>
       </li>
     </ul>
 
     <field id="MFF_DL_VLAN" title="OpenFlow 1.0 VLAN ID" hidden="yes"/>
     <field id="MFF_DL_VLAN_PCP" title="OpenFlow 1.0 VLAN Priority"
-          hidden="yes"/>
+           hidden="yes"/>
 
     <h2>OpenFlow 1.1 VLAN Fields</h2>
 
@@ -3257,88 +3257,88 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
 
     <field id="MFF_VLAN_VID" title="OpenFlow 1.2+ VLAN ID">
       <p>
-       The OpenFlow standard describes this field as consisting of
-       ``12+1'' bits.  On ingress, its value is 0 if no 802.1Q header
-       is present, and otherwise it holds the VLAN VID in its least
-       significant 12 bits, with bit 12 (<code>0x1000</code> aka
-       <code>OFPVID_PRESENT</code>) also set to 1.  The three most
-       significant bits are always zero:
+        The OpenFlow standard describes this field as consisting of
+        ``12+1'' bits.  On ingress, its value is 0 if no 802.1Q header
+        is present, and otherwise it holds the VLAN VID in its least
+        significant 12 bits, with bit 12 (<code>0x1000</code> aka
+        <code>OFPVID_PRESENT</code>) also set to 1.  The three most
+        significant bits are always zero:
       </p>
 
       <diagram>
-       <header name="OXM_OF_VLAN_VID">
-         <bits name="" above="3" below="0" width=".6"/>
-         <bits name="P" above="1" width=".1"/>
-         <bits name="VLAN ID" above="12" width=".9"/>
-       </header>
+        <header name="OXM_OF_VLAN_VID">
+          <bits name="" above="3" below="0" width=".6"/>
+          <bits name="P" above="1" width=".1"/>
+          <bits name="VLAN ID" above="12" width=".9"/>
+        </header>
       </diagram>
 
       <p>
-       As a consequence of this field's format, one may use it to match the
-       VLAN ID in all of the ways available with the OpenFlow 1.0 and 1.1
-       formats, and a few new ways:
+        As a consequence of this field's format, one may use it to match the
+        VLAN ID in all of the ways available with the OpenFlow 1.0 and 1.1
+        formats, and a few new ways:
       </p>
 
       <dl>
-       <dt>Fully wildcarded</dt>
-       <dd>
-         Matches any packet, that is, one without an 802.1Q header or
-         with an 802.1Q header with any TCI value.
-       </dd>
-
-       <dt>
-         Value <code>0x0000</code> (<code>OFPVID_NONE</code>), mask
-         <code>0xffff</code> (or no mask)
-       </dt>
-       <dd>
-         Matches only packets without an 802.1Q header.
-       </dd>
-
-       <dt>
-         Value <code>0x1000</code>, mask <code>0x1000</code>
-       </dt>
-       <dd>
-         Matches any packet with an 802.1Q header, regardless of VLAN
-         ID.
-       </dd>
-
-       <dt>
-         Value <code>0x1009</code>, mask <code>0xffff</code> (or no mask)
-       </dt>
-       <dd>
-         Match only packets with an 802.1Q header with VLAN ID 9.
-       </dd>
-
-       <dt>Value <code>0x1001</code>, mask <code>0x1001</code></dt>
-       <dd>
-         Matches only packets that have an 802.1Q header with an
-         odd-numbered VLAN ID.  (This is just an example; one can
-         match on any desired VLAN ID bit pattern.)
-       </dd>
+        <dt>Fully wildcarded</dt>
+        <dd>
+          Matches any packet, that is, one without an 802.1Q header or
+          with an 802.1Q header with any TCI value.
+        </dd>
+
+        <dt>
+          Value <code>0x0000</code> (<code>OFPVID_NONE</code>), mask
+          <code>0xffff</code> (or no mask)
+        </dt>
+        <dd>
+          Matches only packets without an 802.1Q header.
+        </dd>
+
+        <dt>
+          Value <code>0x1000</code>, mask <code>0x1000</code>
+        </dt>
+        <dd>
+          Matches any packet with an 802.1Q header, regardless of VLAN
+          ID.
+        </dd>
+
+        <dt>
+          Value <code>0x1009</code>, mask <code>0xffff</code> (or no mask)
+        </dt>
+        <dd>
+          Match only packets with an 802.1Q header with VLAN ID 9.
+        </dd>
+
+        <dt>Value <code>0x1001</code>, mask <code>0x1001</code></dt>
+        <dd>
+          Matches only packets that have an 802.1Q header with an
+          odd-numbered VLAN ID.  (This is just an example; one can
+          match on any desired VLAN ID bit pattern.)
+        </dd>
       </dl>
     </field>
 
     <field id="MFF_VLAN_PCP" title="OpenFlow 1.2+ VLAN Priority">
       <p>
-       The 3 least significant bits may be used to match the PCP bits
-       in an 802.1Q header.  Other bits are always zero:
+        The 3 least significant bits may be used to match the PCP bits
+        in an 802.1Q header.  Other bits are always zero:
       </p>
 
       <diagram>
-       <header name="OXM_OF_VLAN_VID">
-         <bits name="zero" above="5" below="0" width="1.0"/>
-         <bits name="PCP" above="3" width=".6"/>
-       </header>
+        <header name="OXM_OF_VLAN_VID">
+          <bits name="zero" above="5" below="0" width="1.0"/>
+          <bits name="PCP" above="3" width=".6"/>
+        </header>
       </diagram>
 
       <p>
-       This field may only be used when <ref field="vlan_vid"/> is not
-       wildcarded and does not exact match on 0 (which only matches
-       when there is no 802.1Q header).
+        This field may only be used when <ref field="vlan_vid"/> is not
+        wildcarded and does not exact match on 0 (which only matches
+        when there is no 802.1Q header).
       </p>
 
       <p>
-       See <cite>VLAN Comparison Chart</cite>, below, for some examples.
+        See <cite>VLAN Comparison Chart</cite>, below, for some examples.
       </p>
     </field>
 
@@ -3352,19 +3352,19 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
 
     <field id="MFF_VLAN_TCI" title="VLAN TCI">
       <p>
-       For a packet without an 802.1Q header, this field is zero.  For a
-       packet with an 802.1Q header, this field is the TCI with the bit in
-       CFI's position (marked <code>P</code> for ``present'' below) forced to
-       1.  Thus, for a packet in VLAN 9 with priority 7, it has the value
-       <code>0xf009</code>:
+        For a packet without an 802.1Q header, this field is zero.  For a
+        packet with an 802.1Q header, this field is the TCI with the bit in
+        CFI's position (marked <code>P</code> for ``present'' below) forced to
+        1.  Thus, for a packet in VLAN 9 with priority 7, it has the value
+        <code>0xf009</code>:
       </p>
 
       <diagram>
-       <header name="NXM_VLAN_TCI">
-         <bits name="PCP" above="3" below="7" width=".6"/>
-         <bits name="P" above="1" below="1" width=".2"/>
-         <bits name="VID" above="12" below="9" width=".9"/>
-         </header>
+        <header name="NXM_VLAN_TCI">
+          <bits name="PCP" above="3" below="7" width=".6"/>
+          <bits name="P" above="1" below="1" width=".2"/>
+          <bits name="VID" above="12" below="9" width=".9"/>
+          </header>
       </diagram>
 
       <p>
@@ -3417,7 +3417,7 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
       </dl>
 
       <p>
-       See <cite>VLAN Comparison Chart</cite>, below, for more examples.
+        See <cite>VLAN Comparison Chart</cite>, below, for more examples.
       </p>
     </field>
 
@@ -3431,22 +3431,22 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
 
     <tbl>
 r r r r r.
-Criteria       OpenFlow 1.0    OpenFlow 1.1    OpenFlow 1.2+   NXM
-\_     \_      \_      \_      \_
-[1]    \fL????\fR/\fL1\fR,\fL??\fR/\fL?\fR     \fL????\fR/\fL1\fR,\fL??\fR/\fL?\fR     \fL0000\fR/\fL0000\fR,\fL--\fR  \fL0000\fR/\fL0000\fR
-[2]    \fLffff\fR/\fL0\fR,\fL??\fR/\fL?\fR     \fLffff\fR/\fL0\fR,\fL??\fR/\fL?\fR     \fL0000\fR/\fLffff\fR,\fL--\fR  \fL0000\fR/\fLffff\fR
-[3]    \fL0xxx\fR/\fL0\fR,\fL??\fR/\fL1\fR     \fL0xxx\fR/\fL0\fR,\fL??\fR/\fL1\fR     \fL1xxx\fR/\fLffff\fR,\fL--\fR  \fL1xxx\fR/\fL1fff\fR
-[4]    \fL????\fR/\fL1\fR,\fL0y\fR/\fL0\fR     \fLfffe\fR/\fL0\fR,\fL0y\fR/\fL0\fR     \fL1000\fR/\fL1000\fR,\fL0y\fR  \fLz000\fR/\fLf000\fR
-[5]    \fL0xxx\fR/\fL0\fR,\fL0y\fR/\fL0\fR     \fL0xxx\fR/\fL0\fR,\fL0y\fR/\fL0\fR     \fL1xxx\fR/\fLffff\fR,\fL0y\fR  \fLzxxx\fR/\fLffff\fR
+Criteria        OpenFlow 1.0    OpenFlow 1.1    OpenFlow 1.2+   NXM
+\_      \_      \_      \_      \_
+[1]     \fL????\fR/\fL1\fR,\fL??\fR/\fL?\fR     \fL????\fR/\fL1\fR,\fL??\fR/\fL?\fR     \fL0000\fR/\fL0000\fR,\fL--\fR  \fL0000\fR/\fL0000\fR
+[2]     \fLffff\fR/\fL0\fR,\fL??\fR/\fL?\fR     \fLffff\fR/\fL0\fR,\fL??\fR/\fL?\fR     \fL0000\fR/\fLffff\fR,\fL--\fR  \fL0000\fR/\fLffff\fR
+[3]     \fL0xxx\fR/\fL0\fR,\fL??\fR/\fL1\fR     \fL0xxx\fR/\fL0\fR,\fL??\fR/\fL1\fR     \fL1xxx\fR/\fLffff\fR,\fL--\fR  \fL1xxx\fR/\fL1fff\fR
+[4]     \fL????\fR/\fL1\fR,\fL0y\fR/\fL0\fR     \fLfffe\fR/\fL0\fR,\fL0y\fR/\fL0\fR     \fL1000\fR/\fL1000\fR,\fL0y\fR  \fLz000\fR/\fLf000\fR
+[5]     \fL0xxx\fR/\fL0\fR,\fL0y\fR/\fL0\fR     \fL0xxx\fR/\fL0\fR,\fL0y\fR/\fL0\fR     \fL1xxx\fR/\fLffff\fR,\fL0y\fR  \fLzxxx\fR/\fLffff\fR
 .T&amp;
 r r c c r.
-[6]    (none)  (none)  \fL1001\fR/\fL1001\fR,\fL--\fR  \fL1001\fR/\fL1001\fR
+[6]     (none)  (none)  \fL1001\fR/\fL1001\fR,\fL--\fR  \fL1001\fR/\fL1001\fR
 .T&amp;
 r r c c c.
-[7]    (none)  (none)  (none)  \fL3000\fR/\fL3000\fR
-[8]    (none)  (none)  (none)  \fL0000\fR/\fL0fff\fR
-[9]    (none)  (none)  (none)  \fL0000\fR/\fLf000\fR
-[10]   (none)  (none)  (none)  \fL0000\fR/\fLefff\fR
+[7]     (none)  (none)  (none)  \fL3000\fR/\fL3000\fR
+[8]     (none)  (none)  (none)  \fL0000\fR/\fL0fff\fR
+[9]     (none)  (none)  (none)  \fL0000\fR/\fLf000\fR
+[10]    (none)  (none)  (none)  \fL0000\fR/\fLefff\fR
     </tbl>
 
     <p>
@@ -3461,32 +3461,32 @@ r r c c c.
       <dt>OpenFlow 1.0</dt>
       <dt>OpenFlow 1.1</dt>
       <dd>
-       <literal>wwww/x,yy/z</literal> means VLAN ID match value
-       <literal>wwww</literal> with wildcard bit <literal>x</literal>
-       and VLAN PCP match value <literal>yy</literal> with wildcard
-       bit <literal>z</literal>.  <literal>?</literal> means that the
-       given bits are ignored (and conventionally
-       <literal>0</literal> for <literal>wwww</literal> or
-       <literal>yy</literal>, conventionally <literal>1</literal> for
-       <literal>x</literal> or <literal>z</literal>).  ``(none)''
-       means that OpenFlow 1.0 (or 1.1) cannot match with these
-       criteria.
+        <literal>wwww/x,yy/z</literal> means VLAN ID match value
+        <literal>wwww</literal> with wildcard bit <literal>x</literal>
+        and VLAN PCP match value <literal>yy</literal> with wildcard
+        bit <literal>z</literal>.  <literal>?</literal> means that the
+        given bits are ignored (and conventionally
+        <literal>0</literal> for <literal>wwww</literal> or
+        <literal>yy</literal>, conventionally <literal>1</literal> for
+        <literal>x</literal> or <literal>z</literal>).  ``(none)''
+        means that OpenFlow 1.0 (or 1.1) cannot match with these
+        criteria.
       </dd>
 
       <dt>OpenFlow 1.2+</dt>
       <dd>
-       <literal>xxxx/yyyy,zz</literal> means <ref field="vlan_vid"/> with
-       value <literal>xxxx</literal> and mask <literal>yyyy</literal>, and
-       <ref field="vlan_pcp"/> (which is not maskable) with value
-       <literal>zz</literal>.  <literal>--</literal> means that <ref
-       field="vlan_pcp"/> is omitted.  ``(none)'' means that OpenFlow 1.2
-       cannot match with these criteria.
+        <literal>xxxx/yyyy,zz</literal> means <ref field="vlan_vid"/> with
+        value <literal>xxxx</literal> and mask <literal>yyyy</literal>, and
+        <ref field="vlan_pcp"/> (which is not maskable) with value
+        <literal>zz</literal>.  <literal>--</literal> means that <ref
+        field="vlan_pcp"/> is omitted.  ``(none)'' means that OpenFlow 1.2
+        cannot match with these criteria.
       </dd>
 
       <dt>NXM</dt>
       <dd>
-       <literal>xxxx/yyyy</literal> means <ref field="vlan_tci"/> with value
-       <literal>xxxx</literal> and mask <literal>yyyy</literal>.
+        <literal>xxxx/yyyy</literal> means <ref field="vlan_tci"/> with value
+        <literal>xxxx</literal> and mask <literal>yyyy</literal>.
       </dd>
     </dl>
 
@@ -3497,111 +3497,111 @@ r r c c c.
     <dl>
       <dt>[1]</dt>
       <dd>
-       Matches any packet, that is, one without an 802.1Q header or
-       with an 802.1Q header with any TCI value.
+        Matches any packet, that is, one without an 802.1Q header or
+        with an 802.1Q header with any TCI value.
       </dd>
 
       <dt>[2]</dt>
       <dd>
-       <p>
-         Matches only packets without an 802.1Q header.
-       </p>
-
-       <p>
-         OpenFlow 1.0 doesn't define the behavior if <ref field="dl_vlan"/> is
-         set to <code>0xffff</code> and <ref field="dl_vlan_pcp"/> is not
-         wildcarded.  (Open vSwitch always ignores <ref field="dl_vlan_pcp"/>
-         when <ref field="dl_vlan"/> is set to <code>0xffff</code>.)
-       </p>
-
-       <p>
-         OpenFlow 1.1 says explicitly to ignore <ref field="dl_vlan_pcp"/>
-         when <ref field="dl_vlan"/> is set to <code>0xffff</code>.
-       </p>
-
-       <p>
-         OpenFlow 1.2 doesn't say how to interpret a match with <ref
-         field="vlan_vid"/> value 0 and a mask with
-         <code>OFPVID_PRESENT</code> (<code>0x1000</code>) set to 1 and some
-         other bits in the mask set to 1 also.  Open vSwitch interprets it the
-         same way as a mask of <code>0x1000</code>.
-       </p>
-
-       <p>
-         Any NXM match with <ref field="vlan_tci"/> value 0 and the CFI bit
-         set to 1 in the mask is equivalent to the one listed in the table.
-       </p>
+        <p>
+          Matches only packets without an 802.1Q header.
+        </p>
+
+        <p>
+          OpenFlow 1.0 doesn't define the behavior if <ref field="dl_vlan"/> is
+          set to <code>0xffff</code> and <ref field="dl_vlan_pcp"/> is not
+          wildcarded.  (Open vSwitch always ignores <ref field="dl_vlan_pcp"/>
+          when <ref field="dl_vlan"/> is set to <code>0xffff</code>.)
+        </p>
+
+        <p>
+          OpenFlow 1.1 says explicitly to ignore <ref field="dl_vlan_pcp"/>
+          when <ref field="dl_vlan"/> is set to <code>0xffff</code>.
+        </p>
+
+        <p>
+          OpenFlow 1.2 doesn't say how to interpret a match with <ref
+          field="vlan_vid"/> value 0 and a mask with
+          <code>OFPVID_PRESENT</code> (<code>0x1000</code>) set to 1 and some
+          other bits in the mask set to 1 also.  Open vSwitch interprets it the
+          same way as a mask of <code>0x1000</code>.
+        </p>
+
+        <p>
+          Any NXM match with <ref field="vlan_tci"/> value 0 and the CFI bit
+          set to 1 in the mask is equivalent to the one listed in the table.
+        </p>
       </dd>
 
       <dt>[3]</dt>
       <dd>
-       Matches only packets that have an 802.1Q header with VID
-       <literal>xxx</literal> (and any PCP).
+        Matches only packets that have an 802.1Q header with VID
+        <literal>xxx</literal> (and any PCP).
       </dd>
 
       <dt>[4]</dt>
       <dd>
-       <p>
-         Matches only packets that have an 802.1Q header with PCP
-         <literal>y</literal> (and any VID).
-       </p>
-
-       <p>
-         OpenFlow 1.0 doesn't clearly define the behavior for this
-         case.  Open vSwitch implements it this way.
-       </p>
-
-       <p>
-         In the NXM value, <literal>z</literal> equals
-         (<literal>y</literal> &lt;&lt; 1) | 1.
-       </p>
+        <p>
+          Matches only packets that have an 802.1Q header with PCP
+          <literal>y</literal> (and any VID).
+        </p>
+
+        <p>
+          OpenFlow 1.0 doesn't clearly define the behavior for this
+          case.  Open vSwitch implements it this way.
+        </p>
+
+        <p>
+          In the NXM value, <literal>z</literal> equals
+          (<literal>y</literal> &lt;&lt; 1) | 1.
+        </p>
       </dd>
 
       <dt>[5]</dt>
       <dd>
-       <p>
-         Matches only packets that have an 802.1Q header with VID
-         <literal>xxx</literal> and PCP <literal>y</literal>.
-       </p>
-
-       <p>
-         In the NXM value, <literal>z</literal> equals
-         (<literal>y</literal> &lt;&lt; 1) | 1.
-       </p>
+        <p>
+          Matches only packets that have an 802.1Q header with VID
+          <literal>xxx</literal> and PCP <literal>y</literal>.
+        </p>
+
+        <p>
+          In the NXM value, <literal>z</literal> equals
+          (<literal>y</literal> &lt;&lt; 1) | 1.
+        </p>
       </dd>
 
       <dt>[6]</dt>
       <dd>
-       Matches only packets that have an 802.1Q header with an
-       odd-numbered VID (and any PCP).  Only possible with OpenFlow
-       1.2 and NXM.  (This is just an example; one can match on any
-       desired VID bit pattern.)
+        Matches only packets that have an 802.1Q header with an
+        odd-numbered VID (and any PCP).  Only possible with OpenFlow
+        1.2 and NXM.  (This is just an example; one can match on any
+        desired VID bit pattern.)
       </dd>
 
       <dt>[7]</dt>
       <dd>
-       Matches only packets that have an 802.1Q header with an
-       odd-numbered PCP (and any VID).  Only possible with NXM.
-       (This is just an example; one can match on any desired VID bit
-       pattern.)
+        Matches only packets that have an 802.1Q header with an
+        odd-numbered PCP (and any VID).  Only possible with NXM.
+        (This is just an example; one can match on any desired VID bit
+        pattern.)
       </dd>
 
       <dt>[8]</dt>
       <dd>
-       Matches packets with no 802.1Q header or with an 802.1Q header
-       with a VID of 0.  Only possible with NXM.
+        Matches packets with no 802.1Q header or with an 802.1Q header
+        with a VID of 0.  Only possible with NXM.
       </dd>
 
       <dt>[9]</dt>
       <dd>
-       Matches packets with no 802.1Q header or with an 802.1Q header
-       with a PCP of 0.  Only possible with NXM.
+        Matches packets with no 802.1Q header or with an 802.1Q header
+        with a PCP of 0.  Only possible with NXM.
       </dd>
 
       <dt>[10]</dt>
       <dd>
-       Matches packets with no 802.1Q header or with an 802.1Q header
-       with both VID and PCP of 0.  Only possible with NXM.
+        Matches packets with no 802.1Q header or with an 802.1Q header
+        with both VID and PCP of 0.  Only possible with NXM.
       </dd>
     </dl>
   </group>
@@ -3625,15 +3625,15 @@ r r c c c.
 
     <diagram>
       <header name="Ethernet">
-       <bits name="dst" above="48" width="0.75"/>
-       <bits name="src" above="48" width="0.75"/>
-       <bits name="type" above="16" below="0x8847" width="0.4"/>
+        <bits name="dst" above="48" width="0.75"/>
+        <bits name="src" above="48" width="0.75"/>
+        <bits name="type" above="16" below="0x8847" width="0.4"/>
       </header>
       <header name="MPLS">
-       <bits name="label" above="20" width=".6"/>
-       <bits name="TC" above="3" width=".3"/>
-       <bits name="S" above="1" width=".1"/>
-       <bits name="TTL" above="8" width=".4"/>
+        <bits name="label" above="20" width=".6"/>
+        <bits name="TC" above="3" width=".3"/>
+        <bits name="S" above="1" width=".1"/>
+        <bits name="TTL" above="8" width=".4"/>
       </header>
       <dots/>
     </diagram>
@@ -3645,21 +3645,21 @@ r r c c c.
 
     <diagram>
       <header name="Ethernet">
-       <bits name="dst" above="48" width=".75"/>
-       <bits name="src" above="48" width=".75"/>
+        <bits name="dst" above="48" width=".75"/>
+        <bits name="src" above="48" width=".75"/>
       </header>
       <header name="802.1Q">
-       <bits name="TPID" above="16" below="0x8100" width=".4"/>
-       <bits name="TCI" above="16" width=".4"/>
+        <bits name="TPID" above="16" below="0x8100" width=".4"/>
+        <bits name="TCI" above="16" width=".4"/>
       </header>
       <header name="Ethertype">
-       <bits name="type" above="16" below="0x8847" width=".4"/>
+        <bits name="type" above="16" below="0x8847" width=".4"/>
       </header>
       <header name="MPLS">
-       <bits name="label" above="20" width=".6"/>
-       <bits name="TC" above="3" width=".3"/>
-       <bits name="S" above="1" width=".1"/>
-       <bits name="TTL" above="8" width=".4"/>
+        <bits name="label" above="20" width=".6"/>
+        <bits name="TC" above="3" width=".3"/>
+        <bits name="S" above="1" width=".1"/>
+        <bits name="TTL" above="8" width=".4"/>
       </header>
       <dots/>
     </diagram>
@@ -3671,38 +3671,38 @@ r r c c c.
     <dl>
       <dt>Label, 20 bits.</dt>
       <dd>
-       An identifier.
+        An identifier.
       </dd>
 
       <dt>Traffic control (TC), 3 bits.</dt>
       <dd>
-       Used for quality of service.
+        Used for quality of service.
       </dd>
 
       <dt>Bottom of stack (BOS), 1 bit (labeled just ``S'' above).</dt>
       <dd>
-       <p>
-         0 indicates that another MPLS label follows this one.
-       </p>
-
-       <p>
-         1 indicates that this MPLS label is the last one in the
-         stack, so that some other protocol follows this one.
-       </p>
+        <p>
+          0 indicates that another MPLS label follows this one.
+        </p>
+
+        <p>
+          1 indicates that this MPLS label is the last one in the
+          stack, so that some other protocol follows this one.
+        </p>
       </dd>
 
       <dt>Time to live (TTL), 8 bits.</dt>
       <dd>
-       <p>
-         Each hop across an MPLS network decrements the TTL by 1.  If
-         it reaches 0, the packet is discarded.
-       </p>
-
-       <p>
-         OpenFlow does not make the MPLS TTL available as a match field, but
-         actions are available to set and decrement the TTL.  Open vSwitch 2.6
-         and later makes the MPLS TTL available as an extension.
-       </p>
+        <p>
+          Each hop across an MPLS network decrements the TTL by 1.  If
+          it reaches 0, the packet is discarded.
+        </p>
+
+        <p>
+          OpenFlow does not make the MPLS TTL available as a match field, but
+          actions are available to set and decrement the TTL.  Open vSwitch 2.6
+          and later makes the MPLS TTL available as an extension.
+        </p>
       </dd>
     </dl>
 
@@ -3736,28 +3736,28 @@ r r c c c.
 
     <ul>
       <li>
-       A few reserved label values do indicate an inner protocol.
-       Label 0, the ``IPv4 Explicit NULL Label,'' indicates inner
-       IPv4.  Label 2, the ``IPv6 Explicit NULL Label,'' indicates
-       inner IPv6.
+        A few reserved label values do indicate an inner protocol.
+        Label 0, the ``IPv4 Explicit NULL Label,'' indicates inner
+        IPv4.  Label 2, the ``IPv6 Explicit NULL Label,'' indicates
+        inner IPv6.
       </li>
 
       <li>
-       Some deployments use a single inner protocol consistently.
+        Some deployments use a single inner protocol consistently.
       </li>
 
       <li>
-       In some deployments, the inner protocol must be inferred from
-       the innermost label.
+        In some deployments, the inner protocol must be inferred from
+        the innermost label.
       </li>
 
       <li>
-       In some deployments, the inner protocol must be inferred from
-       the innermost label and the encapsulated data, e.g. to
-       distinguish between inner IPv4 and IPv6 based on whether the
-       first nibble of the inner protocol data are <code>4</code> or
-       <code>6</code>.  OpenFlow and Open vSwitch do not currently
-       support these cases.
+        In some deployments, the inner protocol must be inferred from
+        the innermost label and the encapsulated data, e.g. to
+        distinguish between inner IPv4 and IPv6 based on whether the
+        first nibble of the inner protocol data are <code>4</code> or
+        <code>6</code>.  OpenFlow and Open vSwitch do not currently
+        support these cases.
       </li>
     </ul>
 
@@ -3772,82 +3772,82 @@ r r c c c.
 
     <field id="MFF_MPLS_LABEL" title="MPLS Label">
       <p>
-       The least significant 20 bits hold the ``label'' field from
-       the MPLS label.  Other bits are zero:
+        The least significant 20 bits hold the ``label'' field from
+        the MPLS label.  Other bits are zero:
       </p>
 
       <diagram>
-       <header name="OXM_OF_MPLS_LABEL">
-         <bits name="zero" above="12" below="0" width=".6"/>
-         <bits name="label" above="20" width="1.0"/>
-       </header>
+        <header name="OXM_OF_MPLS_LABEL">
+          <bits name="zero" above="12" below="0" width=".6"/>
+          <bits name="label" above="20" width="1.0"/>
+        </header>
       </diagram>
 
       <p>
-       Most label values are available for any use by deployments.
-       Values under 16 are reserved.
+        Most label values are available for any use by deployments.
+        Values under 16 are reserved.
       </p>
     </field>
 
     <field id="MFF_MPLS_TC" title="MPLS Traffic Class">
       <p>
-       The least significant 3 bits hold the TC field from the MPLS
-       label.  Other bits are zero:
+        The least significant 3 bits hold the TC field from the MPLS
+        label.  Other bits are zero:
       </p>
 
       <diagram>
-       <header name="OXM_OF_MPLS_TC">
-         <bits name="zero" above="5" below="0" width="1.0"/>
-         <bits name="TC" above="3" width=".6"/>
-       </header>
+        <header name="OXM_OF_MPLS_TC">
+          <bits name="zero" above="5" below="0" width="1.0"/>
+          <bits name="TC" above="3" width=".6"/>
+        </header>
       </diagram>
 
       <p>
-       This field is intended for use for Quality of Service (QoS)
-       and Explicit Congestion Notification purposes, but its
-       particular interpretation is deployment specific.
+        This field is intended for use for Quality of Service (QoS)
+        and Explicit Congestion Notification purposes, but its
+        particular interpretation is deployment specific.
       </p>
 
       <p>
-       Before 2009, this field was named EXP and reserved for
-       experimental use [RFC 5462].
+        Before 2009, this field was named EXP and reserved for
+        experimental use [RFC 5462].
       </p>
     </field>
 
     <field id="MFF_MPLS_BOS" title="MPLS Bottom of Stack">
       <p>
-       The least significant bit holds the BOS field from the MPLS
-       label.  Other bits are zero:
+        The least significant bit holds the BOS field from the MPLS
+        label.  Other bits are zero:
       </p>
 
       <diagram>
-       <header name="OXM_OF_MPLS_BOS">
-         <bits name="zero" above="7" below="0" width="1.3"/>
-         <bits name="BOS" above="1" width=".3"/>
-       </header>
+        <header name="OXM_OF_MPLS_BOS">
+          <bits name="zero" above="7" below="0" width="1.3"/>
+          <bits name="BOS" above="1" width=".3"/>
+        </header>
       </diagram>
 
       <p>
-       This field is useful as part of processing a series of incoming MPLS
-       labels.  A flow that includes a <code>pop_mpls</code> action should
-       generally match on <ref field="mpls_bos"/>:
+        This field is useful as part of processing a series of incoming MPLS
+        labels.  A flow that includes a <code>pop_mpls</code> action should
+        generally match on <ref field="mpls_bos"/>:
       </p>
 
       <ul>
-       <li>
-         When <ref field="mpls_bos"/> is 1, there is another MPLS label
-         following this one, so the Ethertype passed to <code>pop_mpls</code>
-         should be an MPLS Ethertype.  For example: <code>table=0,
-         dl_type=0x8847, mpls_bos=1, actions=pop_mpls:0x8847,
-         goto_table:1</code>
-       </li>
-
-       <li>
-         When <ref field="mpls_bos"/> is 0, this MPLS label is the last one,
-         so the Ethertype passed to <code>pop_mpls</code> should be a non-MPLS
-         Ethertype such as IPv4.  For example: <code>table=1, dl_type=0x8847,
-         mpls_bos=0, actions=pop_mpls:0x0800, goto_table:2</code>
-       </li>
+        <li>
+          When <ref field="mpls_bos"/> is 1, there is another MPLS label
+          following this one, so the Ethertype passed to <code>pop_mpls</code>
+          should be an MPLS Ethertype.  For example: <code>table=0,
+          dl_type=0x8847, mpls_bos=1, actions=pop_mpls:0x8847,
+          goto_table:1</code>
+        </li>
+
+        <li>
+          When <ref field="mpls_bos"/> is 0, this MPLS label is the last one,
+          so the Ethertype passed to <code>pop_mpls</code> should be a non-MPLS
+          Ethertype such as IPv4.  For example: <code>table=1, dl_type=0x8847,
+          mpls_bos=0, actions=pop_mpls:0x0800, goto_table:2</code>
+        </li>
       </ul>
     </field>
 
@@ -3857,9 +3857,9 @@ r r c c c.
       </p>
 
       <diagram>
-       <header name="NXM_NX_MPLS_TTL">
-         <bits name="TTL" above="8" width=".4"/>
-       </header>
+        <header name="NXM_NX_MPLS_TTL">
+          <bits name="TTL" above="8" width=".4"/>
+        </header>
       </diagram>
     </field>
   </group>
@@ -3878,18 +3878,18 @@ r r c c c.
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" below="0x800" width="0.4"/>
-       </header>
-       <header name="IPv4">
-         <bits name="..." width="0.4"/>
-         <bits name="proto" above="8" width="0.4"/>
-         <bits name="src" above="32" width="0.4" fill="yes"/>
-         <bits name="dst" above="32" width="0.4"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" below="0x800" width="0.4"/>
+        </header>
+        <header name="IPv4">
+          <bits name="..." width="0.4"/>
+          <bits name="proto" above="8" width="0.4"/>
+          <bits name="src" above="32" width="0.4" fill="yes"/>
+          <bits name="dst" above="32" width="0.4"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
@@ -3904,18 +3904,18 @@ r r c c c.
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" below="0x800" width="0.4"/>
-       </header>
-       <header name="IPv4">
-         <bits name="..." width="0.4"/>
-         <bits name="proto" above="8" width="0.4"/>
-         <bits name="src" above="32" width="0.4"/>
-         <bits name="dst" above="32" width="0.4" fill="yes"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" below="0x800" width="0.4"/>
+        </header>
+        <header name="IPv4">
+          <bits name="..." width="0.4"/>
+          <bits name="proto" above="8" width="0.4"/>
+          <bits name="src" above="32" width="0.4"/>
+          <bits name="dst" above="32" width="0.4" fill="yes"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
@@ -3937,18 +3937,18 @@ r r c c c.
       </p>
 
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" below="0x86dd" width="0.4"/>
-       </header>
-       <header name="IPv6">
-         <bits name="..." width="0.4"/>
-         <bits name="next" above="8" width="0.3"/>
-         <bits name="src" above="128" width="0.8" fill="yes"/>
-         <bits name="dst" above="128" width="0.8"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" below="0x86dd" width="0.4"/>
+        </header>
+        <header name="IPv6">
+          <bits name="..." width="0.4"/>
+          <bits name="next" above="8" width="0.3"/>
+          <bits name="src" above="128" width="0.8" fill="yes"/>
+          <bits name="dst" above="128" width="0.8"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
@@ -3961,18 +3961,18 @@ r r c c c.
         The destination address from the IPv6 header:
       </p>
       <diagram>
-       <header name="Ethernet">
-         <bits name="dst" above="48" width="0.4"/>
-         <bits name="src" above="48" width="0.4"/>
-         <bits name="type" above="16" below="0x86dd" width="0.4"/>
-       </header>
-       <header name="IPv6">
-         <bits name="..." width="0.4"/>
-         <bits name="next" above="8" width="0.3"/>
-         <bits name="src" above="128" width="0.8"/>
-         <bits name="dst" above="128" width="0.8" fill="yes"/>
-       </header>
-       <dots/>
+        <header name="Ethernet">
+          <bits name="dst" above="48" width="0.4"/>
+          <bits name="src" above="48" width="0.4"/>
+          <bits name="type" above="16" below="0x86dd" width="0.4"/>
+        </header>
+        <header name="IPv6">
+          <bits name="..." width="0.4"/>
+          <bits name="next" above="8" width="0.3"/>
+          <bits name="src" above="128" width="0.8"/>
+          <bits name="dst" above="128" width="0.8" fill="yes"/>
+        </header>
+        <dots/>
       </diagram>
 
       <p>
@@ -3982,15 +3982,15 @@ r r c c c.
     </field>
     <field id="MFF_IPV6_LABEL" title="IPv6 Flow Label">
       <p>
-       The least significant 20 bits hold the flow label field from
-       the IPv6 header.  Other bits are zero:
+        The least significant 20 bits hold the flow label field from
+        the IPv6 header.  Other bits are zero:
       </p>
 
       <diagram>
-       <header name="OXM_OF_IPV6_FLABEL">
-         <bits name="zero" above="12" below="0" width=".6"/>
-         <bits name="label" above="20" width="1.0"/>
-       </header>
+        <header name="OXM_OF_IPV6_FLABEL">
+          <bits name="zero" above="12" below="0" width=".6"/>
+          <bits name="label" above="20" width="1.0"/>
+        </header>
       </diagram>
     </field>
 
@@ -4067,11 +4067,11 @@ r r c c c.
       </p>
 
       <diagram>
-       <header name="NXM_NX_IP_FRAG">
-         <bits name="zero" above="6" below="0" width=".9"/>
-         <bits name="later" above="1" width=".3"/>
-         <bits name="any" above="1" width=".3"/>
-       </header>
+        <header name="NXM_NX_IP_FRAG">
+          <bits name="zero" above="6" below="0" width=".9"/>
+          <bits name="later" above="1" width=".3"/>
+          <bits name="any" above="1" width=".3"/>
+        </header>
       </diagram>
 
       <p>
@@ -4149,8 +4149,8 @@ r r c c c.
 
     <diagram>
       <header name="type of service">
-       <bits name="DSCP" above="6" width=".9"/>
-       <bits name="ECN" above="2" width=".3"/>
+        <bits name="DSCP" above="6" width=".9"/>
+        <bits name="ECN" above="2" width=".3"/>
       </header>
     </diagram>
 
@@ -4160,10 +4160,10 @@ r r c c c.
       </p>
 
       <diagram>
-       <header name="NXM_OF_IP_TOS">
-         <bits name="DSCP" above="6" width=".9"/>
-         <bits name="zero" above="2" below="0" width=".3"/>
-       </header>
+        <header name="NXM_OF_IP_TOS">
+          <bits name="DSCP" above="6" width=".9"/>
+          <bits name="zero" above="2" below="0" width=".3"/>
+        </header>
       </diagram>
     </field>
     <field id="MFF_IP_DSCP_SHIFTED" title="IPv4/v6 DSCP (Bits 0-5)">
@@ -4173,10 +4173,10 @@ r r c c c.
       </p>
 
       <diagram>
-       <header name="OXM_OF_IP_DSCP">
-         <bits name="zero" above="2" below="0" width=".3"/>
-         <bits name="DSCP" above="6" width=".9"/>
-       </header>
+        <header name="OXM_OF_IP_DSCP">
+          <bits name="zero" above="2" below="0" width=".3"/>
+          <bits name="DSCP" above="6" width=".9"/>
+        </header>
       </diagram>
     </field>
     <field id="MFF_IP_ECN" title="IPv4/v6 ECN">
@@ -4185,10 +4185,10 @@ r r c c c.
       </p>
 
       <diagram>
-       <header name="OXM_OF_IP_ECN">
-         <bits name="zero" above="6" below="0" width=".9"/>
-         <bits name="ECN" above="2" width=".35"/>
-       </header>
+        <header name="OXM_OF_IP_ECN">
+          <bits name="zero" above="6" below="0" width=".9"/>
+          <bits name="ECN" above="2" width=".35"/>
+        </header>
       </diagram>
     </field>
 
@@ -4207,20 +4207,20 @@ r r c c c.
 
     <diagram>
       <header name="Ethernet">
-       <bits name="dst" above="48" width="0.4"/>
-       <bits name="src" above="48" width="0.4"/>
-       <bits name="type" above="16" below="0x806" width="0.4"/>
+        <bits name="dst" above="48" width="0.4"/>
+        <bits name="src" above="48" width="0.4"/>
+        <bits name="type" above="16" below="0x806" width="0.4"/>
       </header>
       <header name="ARP">
-       <bits name="hrd" above="16" below="1" width=".3"/>
-       <bits name="pro" above="16" below="0x800" width=".3"/>
-       <bits name="hln" above="8" below="6" width=".2"/>
-       <bits name="pln" above="8" below="4" width=".2"/>
-       <bits name="op" above="16" width=".2" fill="yes"/>
-       <bits name="sha" above="48" width="0.5" fill="yes"/>
-       <bits name="spa" above="16" width="0.3" fill="yes"/>
-       <bits name="tha" above="48" width="0.5" fill="yes"/>
-       <bits name="tpa" above="16" width="0.3" fill="yes"/>
+        <bits name="hrd" above="16" below="1" width=".3"/>
+        <bits name="pro" above="16" below="0x800" width=".3"/>
+        <bits name="hln" above="8" below="6" width=".2"/>
+        <bits name="pln" above="8" below="4" width=".2"/>
+        <bits name="op" above="16" width=".2" fill="yes"/>
+        <bits name="sha" above="48" width="0.5" fill="yes"/>
+        <bits name="spa" above="16" width="0.3" fill="yes"/>
+        <bits name="tha" above="48" width="0.5" fill="yes"/>
+        <bits name="tpa" above="16" width="0.3" fill="yes"/>
       </header>
     </diagram>
 
@@ -4362,22 +4362,22 @@ r r c c c.
 
     <diagram>
       <header name="Ethernet">
-       <bits name="dst" above="48" width="0.4"/>
-       <bits name="src" above="48" width="0.4"/>
-       <bits name="type" above="16" below="0x800" width="0.4"/>
+        <bits name="dst" above="48" width="0.4"/>
+        <bits name="src" above="48" width="0.4"/>
+        <bits name="type" above="16" below="0x800" width="0.4"/>
       </header>
       <header name="IPv4">
-       <bits name="..." width="0.4"/>
-       <bits name="proto" above="8" below="6" width="0.3"/>
-       <bits name="src" above="32" width="0.4"/>
-       <bits name="dst" above="32" width="0.4"/>
+        <bits name="..." width="0.4"/>
+        <bits name="proto" above="8" below="6" width="0.3"/>
+        <bits name="src" above="32" width="0.4"/>
+        <bits name="dst" above="32" width="0.4"/>
       </header>
       <header name="TCP">
-       <bits name="src" above="16" width=".2"/>
-       <bits name="dst" above="16" width=".2"/>
-       <bits name="..." width=".75"/>
-       <bits name="flags" above="12" width=".3"/>
-       <bits name="..." width=".6"/>
+        <bits name="src" above="16" width=".2"/>
+        <bits name="dst" above="16" width=".2"/>
+        <bits name="..." width=".75"/>
+        <bits name="flags" above="12" width=".3"/>
+        <bits name="..." width=".6"/>
       </header>
       <dots/>
     </diagram>
@@ -4413,30 +4413,30 @@ r r c c c.
       </p>
 
       <diagram>
-       <header>
-         <bits name="zero" above="4" below="0" width=".9"/>
-       </header>
-       <nospace/>
-       <header name="reserved">
-         <bits name="[800]" above="1" width=".35"/>
-         <bits name="[400]" above="1" width=".35"/>
-         <bits name="[200]" above="1" width=".35"/>
-       </header>
-       <nospace/>
-       <header name="later RFCs">
-         <bits name="NS" above="1" width=".35"/>
-         <bits name="CWR" above="1" width=".35"/>
-         <bits name="ECE" above="1" width=".35"/>
-       </header>
-       <nospace/>
-       <header name="RFC 793">
-         <bits name="URG" above="1" width=".35"/>
-         <bits name="ACK" above="1" width=".35"/>
-         <bits name="PSH" above="1" width=".35"/>
-         <bits name="RST" above="1" width=".35"/>
-         <bits name="SYN" above="1" width=".35"/>
-         <bits name="FIN" above="1" width=".35"/>
-       </header>
+        <header>
+          <bits name="zero" above="4" below="0" width=".9"/>
+        </header>
+        <nospace/>
+        <header name="reserved">
+          <bits name="[800]" above="1" width=".35"/>
+          <bits name="[400]" above="1" width=".35"/>
+          <bits name="[200]" above="1" width=".35"/>
+        </header>
+        <nospace/>
+        <header name="later RFCs">
+          <bits name="NS" above="1" width=".35"/>
+          <bits name="CWR" above="1" width=".35"/>
+          <bits name="ECE" above="1" width=".35"/>
+        </header>
+        <nospace/>
+        <header name="RFC 793">
+          <bits name="URG" above="1" width=".35"/>
+          <bits name="ACK" above="1" width=".35"/>
+          <bits name="PSH" above="1" width=".35"/>
+          <bits name="RST" above="1" width=".35"/>
+          <bits name="SYN" above="1" width=".35"/>
+          <bits name="FIN" above="1" width=".35"/>
+        </header>
       </diagram>
     </field>
 
@@ -4450,20 +4450,20 @@ r r c c c.
 
     <diagram>
       <header name="Ethernet">
-       <bits name="dst" above="48" width="0.4"/>
-       <bits name="src" above="48" width="0.4"/>
-       <bits name="type" above="16" below="0x800" width="0.4"/>
+        <bits name="dst" above="48" width="0.4"/>
+        <bits name="src" above="48" width="0.4"/>
+        <bits name="type" above="16" below="0x800" width="0.4"/>
       </header>
       <header name="IPv4">
-       <bits name="..." width="0.4"/>
-       <bits name="proto" above="8" below="17" width="0.3"/>
-       <bits name="src" above="32" width="0.4"/>
-       <bits name="dst" above="32" width="0.4"/>
+        <bits name="..." width="0.4"/>
+        <bits name="proto" above="8" below="17" width="0.3"/>
+        <bits name="src" above="32" width="0.4"/>
+        <bits name="dst" above="32" width="0.4"/>
       </header>
       <header name="UDP">
-       <bits name="src" above="16" width=".2"/>
-       <bits name="dst" above="16" width=".2"/>
-       <bits name="..." width=".4"/>
+        <bits name="src" above="16" width=".2"/>
+        <bits name="dst" above="16" width=".2"/>
+        <bits name="..." width=".4"/>
       </header>
       <dots/>
     </diagram>
@@ -4480,20 +4480,20 @@ r r c c c.
 
     <diagram>
       <header name="Ethernet">
-       <bits name="dst" above="48" width="0.4"/>
-       <bits name="src" above="48" width="0.4"/>
-       <bits name="type" above="16" below="0x800" width="0.4"/>
+        <bits name="dst" above="48" width="0.4"/>
+        <bits name="src" above="48" width="0.4"/>
+        <bits name="type" above="16" below="0x800" width="0.4"/>
       </header>
       <header name="IPv4">
-       <bits name="..." width="0.4"/>
-       <bits name="proto" above="8" below="132" width="0.3"/>
-       <bits name="src" above="32" width="0.4"/>
-       <bits name="dst" above="32" width="0.4"/>
+        <bits name="..." width="0.4"/>
+        <bits name="proto" above="8" below="132" width="0.3"/>
+        <bits name="src" above="32" width="0.4"/>
+        <bits name="dst" above="32" width="0.4"/>
       </header>
       <header name="SCTP">
-       <bits name="src" above="16" width=".2"/>
-       <bits name="dst" above="16" width=".2"/>
-       <bits name="..." width=".8"/>
+        <bits name="src" above="16" width=".2"/>
+        <bits name="dst" above="16" width=".2"/>
+        <bits name="..." width=".8"/>
       </header>
       <dots/>
     </diagram>
@@ -4505,20 +4505,20 @@ r r c c c.
     <h2>ICMPv4</h2>
     <diagram>
       <header name="Ethernet">
-       <bits name="dst" above="48" width="0.4"/>
-       <bits name="src" above="48" width="0.4"/>
-       <bits name="type" above="16" below="0x800" width="0.4"/>
+        <bits name="dst" above="48" width="0.4"/>
+        <bits name="src" above="48" width="0.4"/>
+        <bits name="type" above="16" below="0x800" width="0.4"/>
       </header>
       <header name="IPv4">
-       <bits name="..." width="0.4"/>
-       <bits name="proto" above="8" below="1" width="0.3"/>
-       <bits name="src" above="32" width="0.4"/>
-       <bits name="dst" above="32" width="0.4"/>
+        <bits name="..." width="0.4"/>
+        <bits name="proto" above="8" below="1" width="0.3"/>
+        <bits name="src" above="32" width="0.4"/>
+        <bits name="dst" above="32" width="0.4"/>
       </header>
       <header name="ICMPv4">
-       <bits name="type" above="8" width=".3"/>
-       <bits name="code" above="8" width=".3"/>
-       <bits name="..." width=".8"/>
+        <bits name="type" above="8" width=".3"/>
+        <bits name="code" above="8" width=".3"/>
+        <bits name="..." width=".8"/>
       </header>
       <dots/>
     </diagram>
@@ -4538,20 +4538,20 @@ r r c c c.
     <h2>ICMPv6</h2>
     <diagram>
       <header name="Ethernet">
-       <bits name="dst" above="48" width="0.4"/>
-       <bits name="src" above="48" width="0.4"/>
-       <bits name="type" above="16" below="0x86dd" width="0.4"/>
+        <bits name="dst" above="48" width="0.4"/>
+        <bits name="src" above="48" width="0.4"/>
+        <bits name="type" above="16" below="0x86dd" width="0.4"/>
       </header>
       <header name="IPv6">
-       <bits name="..." width="0.2"/>
-       <bits name="next" above="8" below="58" width="0.3"/>
-       <bits name="src" above="128" width="0.4"/>
-       <bits name="dst" above="128" width="0.4"/>
+        <bits name="..." width="0.2"/>
+        <bits name="next" above="8" below="58" width="0.3"/>
+        <bits name="src" above="128" width="0.4"/>
+        <bits name="dst" above="128" width="0.4"/>
       </header>
       <header name="ICMPv6">
-       <bits name="type" above="8" width=".3"/>
-       <bits name="code" above="8" width=".3"/>
-       <bits name="..." width=".8"/>
+        <bits name="type" above="8" width=".3"/>
+        <bits name="code" above="8" width=".3"/>
+        <bits name="..." width=".8"/>
       </header>
       <dots/>
     </diagram>
@@ -4561,31 +4561,31 @@ r r c c c.
     <h2>ICMPv6 Neighbor Discovery</h2>
     <diagram>
       <header name="Ethernet">
-       <bits name="dst" above="48" width="0.4"/>
-       <bits name="src" above="48" width="0.4"/>
-       <bits name="type" above="16" below="0x86dd" width="0.4"/>
+        <bits name="dst" above="48" width="0.4"/>
+        <bits name="src" above="48" width="0.4"/>
+        <bits name="type" above="16" below="0x86dd" width="0.4"/>
       </header>
       <header name="IPv6">
-       <bits name="..." width="0.2"/>
-       <bits name="next" above="8" below="58" width="0.3"/>
-       <bits name="src" above="128" width="0.4"/>
-       <bits name="dst" above="128" width="0.4"/>
+        <bits name="..." width="0.2"/>
+        <bits name="next" above="8" below="58" width="0.3"/>
+        <bits name="src" above="128" width="0.4"/>
+        <bits name="dst" above="128" width="0.4"/>
       </header>
       <header name="ICMPv6">
-       <bits name="type" above="8" below="135/136" width=".3"/>
-       <bits name="code" above="8" below="0" width=".3"/>
-       <bits name="..." width=".8"/>
+        <bits name="type" above="8" below="135/136" width=".3"/>
+        <bits name="code" above="8" below="0" width=".3"/>
+        <bits name="..." width=".8"/>
       </header>
       <header name="ICMPv6 ND">
-       <bits name="target" above="128" width=".4"/>
-       <bits name="option ..." width=".6"/>
+        <bits name="target" above="128" width=".4"/>
+        <bits name="option ..." width=".6"/>
       </header>
     </diagram>
     <field id="MFF_ND_TARGET" title="ICMPv6 Neighbor Discovery Target IPv6"/>
     <field id="MFF_ND_SLL"
-          title="ICMPv6 Neighbor Discovery Source Ethernet Address"/>
+           title="ICMPv6 Neighbor Discovery Source Ethernet Address"/>
     <field id="MFF_ND_TLL"
-          title="ICMPv6 Neighbor Discovery Target Ethernet Address"/>
+           title="ICMPv6 Neighbor Discovery Target Ethernet Address"/>
   </group>
 
   <h1>References</h1>
index 68e382471dbdf3d82ea495ca06919a4499e59e17..05a39c22bd0dcc6859d3e8ddcc78242f544bec8c 100644 (file)
@@ -1634,12 +1634,12 @@ print_tlv_table(struct ds *s, struct ovs_list *mappings)
     struct ofputil_tlv_map *map;
 
     ds_put_cstr(s, " mapping table:\n");
-    ds_put_cstr(s, " class\ttype\tlength\tmatch field\n");
-    ds_put_cstr(s, " -----\t----\t------\t-----------");
+    ds_put_cstr(s, "  class  type  length  match field\n");
+    ds_put_cstr(s, " ------  ----  ------  --------------");
 
     LIST_FOR_EACH (map, list_node, mappings) {
-        ds_put_char(s, '\n');
-        ds_put_format(s, " 0x%"PRIx16"\t0x%"PRIx8"\t%"PRIu8"\ttun_metadata%"PRIu16,
+        ds_put_format(s, "\n %#6"PRIx16"  %#4"PRIx8"  %6"PRIu8"  "
+                      "tun_metadata%"PRIu16,
                       map->option_class, map->option_type, map->option_len,
                       map->index);
     }
index 4d9fe787f530740fc8754c37dcbf5c76a225bb01..40298067884c5fcf74ea4673a28d64084836117b 100644 (file)
@@ -2283,7 +2283,7 @@ ipfix_cache_entry_init(const struct dpif_ipfix *di,
         data_tunnel->tunnel_key_length = tunnel_port->tunnel_key_length;
         /* tun_id is in network order, and tunnel key is in low bits. */
         tun_id = (const uint8_t *) &tunnel_key->tun_id;
-       memcpy(data_tunnel->tunnel_key,
+        memcpy(data_tunnel->tunnel_key,
                &tun_id[8 - tunnel_port->tunnel_key_length],
                tunnel_port->tunnel_key_length);
     }
index bbec30e020606a889f551716148ba56181cf800f..d17d7a8be83c7e352d40da372879d278a4bab232 100644 (file)
@@ -361,50 +361,50 @@ sflow_agent_get_counters(void *ds_, SFLPoller *poller,
 
     /* Include LACP counters and identifiers if this port is part of a LAG. */
     if (ofproto_port_get_lacp_stats(dsp->ofport, &lacp_stats) == 0) {
-       memset(&lacp_elem, 0, sizeof lacp_elem);
-       lacp_elem.tag = SFLCOUNTERS_LACP;
-       lacp_elem.counterBlock.lacp.actorSystemID =
+        memset(&lacp_elem, 0, sizeof lacp_elem);
+        lacp_elem.tag = SFLCOUNTERS_LACP;
+        lacp_elem.counterBlock.lacp.actorSystemID =
         lacp_stats.dot3adAggPortActorSystemID;
-       lacp_elem.counterBlock.lacp.partnerSystemID =
+        lacp_elem.counterBlock.lacp.partnerSystemID =
         lacp_stats.dot3adAggPortPartnerOperSystemID;
-       lacp_elem.counterBlock.lacp.attachedAggID =
-           lacp_stats.dot3adAggPortAttachedAggID;
-       lacp_elem.counterBlock.lacp.portState.v.actorAdmin =
-           lacp_stats.dot3adAggPortActorAdminState;
-       lacp_elem.counterBlock.lacp.portState.v.actorOper =
-           lacp_stats.dot3adAggPortActorOperState;
-       lacp_elem.counterBlock.lacp.portState.v.partnerAdmin =
-           lacp_stats.dot3adAggPortPartnerAdminState;
-       lacp_elem.counterBlock.lacp.portState.v.partnerOper =
-           lacp_stats.dot3adAggPortPartnerOperState;
-       lacp_elem.counterBlock.lacp.LACPDUsRx =
-           lacp_stats.dot3adAggPortStatsLACPDUsRx;
-       SFL_UNDEF_COUNTER(lacp_elem.counterBlock.lacp.markerPDUsRx);
-       SFL_UNDEF_COUNTER(lacp_elem.counterBlock.lacp.markerResponsePDUsRx);
-       SFL_UNDEF_COUNTER(lacp_elem.counterBlock.lacp.unknownRx);
-       lacp_elem.counterBlock.lacp.illegalRx =
-           lacp_stats.dot3adAggPortStatsIllegalRx;
-       lacp_elem.counterBlock.lacp.LACPDUsTx =
-           lacp_stats.dot3adAggPortStatsLACPDUsTx;
-       SFL_UNDEF_COUNTER(lacp_elem.counterBlock.lacp.markerPDUsTx);
-       SFL_UNDEF_COUNTER(lacp_elem.counterBlock.lacp.markerResponsePDUsTx);
-       SFLADD_ELEMENT(cs, &lacp_elem);
+        lacp_elem.counterBlock.lacp.attachedAggID =
+            lacp_stats.dot3adAggPortAttachedAggID;
+        lacp_elem.counterBlock.lacp.portState.v.actorAdmin =
+            lacp_stats.dot3adAggPortActorAdminState;
+        lacp_elem.counterBlock.lacp.portState.v.actorOper =
+            lacp_stats.dot3adAggPortActorOperState;
+        lacp_elem.counterBlock.lacp.portState.v.partnerAdmin =
+            lacp_stats.dot3adAggPortPartnerAdminState;
+        lacp_elem.counterBlock.lacp.portState.v.partnerOper =
+            lacp_stats.dot3adAggPortPartnerOperState;
+        lacp_elem.counterBlock.lacp.LACPDUsRx =
+            lacp_stats.dot3adAggPortStatsLACPDUsRx;
+        SFL_UNDEF_COUNTER(lacp_elem.counterBlock.lacp.markerPDUsRx);
+        SFL_UNDEF_COUNTER(lacp_elem.counterBlock.lacp.markerResponsePDUsRx);
+        SFL_UNDEF_COUNTER(lacp_elem.counterBlock.lacp.unknownRx);
+        lacp_elem.counterBlock.lacp.illegalRx =
+            lacp_stats.dot3adAggPortStatsIllegalRx;
+        lacp_elem.counterBlock.lacp.LACPDUsTx =
+            lacp_stats.dot3adAggPortStatsLACPDUsTx;
+        SFL_UNDEF_COUNTER(lacp_elem.counterBlock.lacp.markerPDUsTx);
+        SFL_UNDEF_COUNTER(lacp_elem.counterBlock.lacp.markerResponsePDUsTx);
+        SFLADD_ELEMENT(cs, &lacp_elem);
     }
 
     /* Include Port name. */
     if ((ifName = netdev_get_name(dsp->ofport->netdev)) != NULL) {
-       memset(&name_elem, 0, sizeof name_elem);
-       name_elem.tag = SFLCOUNTERS_PORTNAME;
-       name_elem.counterBlock.portName.portName.str = (char *)ifName;
-       name_elem.counterBlock.portName.portName.len = strlen(ifName);
-       SFLADD_ELEMENT(cs, &name_elem);
+        memset(&name_elem, 0, sizeof name_elem);
+        name_elem.tag = SFLCOUNTERS_PORTNAME;
+        name_elem.counterBlock.portName.portName.str = (char *)ifName;
+        name_elem.counterBlock.portName.portName.len = strlen(ifName);
+        SFLADD_ELEMENT(cs, &name_elem);
     }
 
     /* Include OpenFlow DPID and openflow port number. */
     memset(&of_elem, 0, sizeof of_elem);
     of_elem.tag = SFLCOUNTERS_OPENFLOWPORT;
     of_elem.counterBlock.ofPort.datapath_id =
-       ofproto_get_datapath_id(dsp->ofport->ofproto);
+        ofproto_get_datapath_id(dsp->ofport->ofproto);
     of_elem.counterBlock.ofPort.port_no =
       (OVS_FORCE uint32_t)dsp->ofport->ofp_port;
     SFLADD_ELEMENT(cs, &of_elem);
@@ -615,15 +615,15 @@ static enum dpif_sflow_tunnel_type
 dpif_sflow_tunnel_type(struct ofport *ofport) {
     const char *type = netdev_get_type(ofport->netdev);
     if (type) {
-       if (strcmp(type, "gre") == 0) {
-           return DPIF_SFLOW_TUNNEL_GRE;
-       } else if (strcmp(type, "vxlan") == 0) {
-           return DPIF_SFLOW_TUNNEL_VXLAN;
-       } else if (strcmp(type, "lisp") == 0) {
-           return DPIF_SFLOW_TUNNEL_LISP;
-       } else if (strcmp(type, "geneve") == 0) {
-           return DPIF_SFLOW_TUNNEL_GENEVE;
-       }
+        if (strcmp(type, "gre") == 0) {
+            return DPIF_SFLOW_TUNNEL_GRE;
+        } else if (strcmp(type, "vxlan") == 0) {
+            return DPIF_SFLOW_TUNNEL_VXLAN;
+        } else if (strcmp(type, "lisp") == 0) {
+            return DPIF_SFLOW_TUNNEL_LISP;
+        } else if (strcmp(type, "geneve") == 0) {
+            return DPIF_SFLOW_TUNNEL_GENEVE;
+        }
     }
     return DPIF_SFLOW_TUNNEL_UNKNOWN;
 }
@@ -665,10 +665,10 @@ dpif_sflow_add_port(struct dpif_sflow *ds, struct ofport *ofport,
     ifindex = netdev_get_ifindex(ofport->netdev);
 
     if (ifindex <= 0
-       && tunnel_type == DPIF_SFLOW_TUNNEL_UNKNOWN) {
+        && tunnel_type == DPIF_SFLOW_TUNNEL_UNKNOWN) {
         /* Not an ifindex port, and not a tunnel port either
-        * so do not add a cross-reference to it here.
-        */
+         * so do not add a cross-reference to it here.
+         */
         goto out;
     }
 
@@ -680,14 +680,14 @@ dpif_sflow_add_port(struct dpif_sflow *ds, struct ofport *ofport,
     hmap_insert(&ds->ports, &dsp->hmap_node, hash_odp_port(odp_port));
 
     if (ifindex > 0) {
-       /* Add poller for ports that have ifindex. */
-       SFL_DS_SET(dsp->dsi, SFL_DSCLASS_IFINDEX, ifindex, 0);
-       if (ds->sflow_agent) {
-           dpif_sflow_add_poller(ds, dsp);
-       }
+        /* Add poller for ports that have ifindex. */
+        SFL_DS_SET(dsp->dsi, SFL_DSCLASS_IFINDEX, ifindex, 0);
+        if (ds->sflow_agent) {
+            dpif_sflow_add_poller(ds, dsp);
+        }
     } else {
-       /* Record "ifindex unknown" for the others */
-       SFL_DS_SET(dsp->dsi, SFL_DSCLASS_IFINDEX, 0, 0);
+        /* Record "ifindex unknown" for the others */
+        SFL_DS_SET(dsp->dsi, SFL_DSCLASS_IFINDEX, 0, 0);
     }
 
 out:
@@ -699,9 +699,9 @@ dpif_sflow_del_port__(struct dpif_sflow *ds, struct dpif_sflow_port *dsp)
     OVS_REQUIRES(mutex)
 {
     if (ds->sflow_agent
-       && SFL_DS_INDEX(dsp->dsi)) {
-       sfl_agent_removePoller(ds->sflow_agent, &dsp->dsi);
-       sfl_agent_removeSampler(ds->sflow_agent, &dsp->dsi);
+        && SFL_DS_INDEX(dsp->dsi)) {
+        sfl_agent_removePoller(ds->sflow_agent, &dsp->dsi);
+        sfl_agent_removeSampler(ds->sflow_agent, &dsp->dsi);
     }
     hmap_remove(&ds->ports, &dsp->hmap_node);
     free(dsp);
@@ -826,7 +826,7 @@ dpif_sflow_set_options(struct dpif_sflow *ds,
     HMAP_FOR_EACH (dsp, hmap_node, &ds->ports) {
         if (SFL_DS_INDEX(dsp->dsi)) {
             dpif_sflow_add_poller(ds, dsp);
-       }
+        }
     }
 
 
@@ -867,8 +867,8 @@ dpif_sflow_push_mpls_lse(struct dpif_sflow_actions *sflow_actions,
                          ovs_be32 lse)
 {
     if (sflow_actions->mpls_stack_depth >= FLOW_MAX_MPLS_LABELS) {
-       sflow_actions->mpls_err = true;
-       return;
+        sflow_actions->mpls_err = true;
+        return;
     }
 
     /* Record the new lse in host-byte-order. */
@@ -880,25 +880,25 @@ static void
 dpif_sflow_pop_mpls_lse(struct dpif_sflow_actions *sflow_actions)
 {
     if (sflow_actions->mpls_stack_depth == 0) {
-       sflow_actions->mpls_err = true;
-       return;
+        sflow_actions->mpls_err = true;
+        return;
     }
     sflow_actions->mpls_stack_depth--;
 }
 
 static void
 dpif_sflow_set_mpls(struct dpif_sflow_actions *sflow_actions,
-                   const struct ovs_key_mpls *mpls_key, int n)
+                    const struct ovs_key_mpls *mpls_key, int n)
 {
     int ii;
     if (n > FLOW_MAX_MPLS_LABELS) {
-       sflow_actions->mpls_err = true;
-       return;
+        sflow_actions->mpls_err = true;
+        return;
     }
 
     for (ii = 0; ii < n; ii++) {
-       /* Reverse stack order, and use host-byte-order for each lse. */
-       sflow_actions->mpls_lse[n - ii - 1] = ntohl(mpls_key[ii].mpls_lse);
+        /* Reverse stack order, and use host-byte-order for each lse. */
+        sflow_actions->mpls_lse[n - ii - 1] = ntohl(mpls_key[ii].mpls_lse);
     }
     sflow_actions->mpls_stack_depth = n;
 }
@@ -1108,123 +1108,123 @@ dpif_sflow_read_actions(const struct flow *flow,
     unsigned int left;
 
     if (actions_len == 0) {
-       /* Packet dropped.*/
-       return;
+        /* Packet dropped.*/
+        return;
     }
 
     if (flow != NULL && capture_mpls == true) {
-       /* Make sure the MPLS output stack
-        * is seeded with the input stack.
-        */
-       dpif_sflow_capture_input_mpls(flow, sflow_actions);
-
-       /* XXX when 802.1AD(QinQ) is supported then
-        * we can do the same with VLAN stacks here
-        */
+        /* Make sure the MPLS output stack
+         * is seeded with the input stack.
+         */
+        dpif_sflow_capture_input_mpls(flow, sflow_actions);
+
+        /* XXX when 802.1AD(QinQ) is supported then
+         * we can do the same with VLAN stacks here
+         */
     }
 
     NL_ATTR_FOR_EACH (a, left, actions, actions_len) {
-       enum ovs_action_attr type = nl_attr_type(a);
-       switch (type) {
-       case OVS_ACTION_ATTR_OUTPUT:
-           /* Capture the output port in case we need it
-            * to get the output tunnel type.
-            */
-           sflow_actions->out_port = nl_attr_get_odp_port(a);
-           break;
-
-       case OVS_ACTION_ATTR_TUNNEL_POP:
-           /* XXX: Do not handle this for now.  It's not clear
-            * if we should start with encap_depth == 1 when we
-            * see an input tunnel,  or if we should assume
-            * that the input tunnel was always "popped" if it
-            * was presented to us decoded in flow->tunnel?
-            *
-            * If we do handle this it might look like this,
-            * as we clear the captured tunnel info and decrement
-            * the encap_depth:
-            *
-            * memset(&sflow_actions->tunnel, 0, sizeof struct flow_tnl);
-            * sflow_actions->tunnel_ipproto = 0;
-            * --sflow_actions->encap_depth;
-            *
-            * but for now just disable the tunnel annotation:
-            */
-           sflow_actions->tunnel_err = true;
-           break;
-
-       case OVS_ACTION_ATTR_TUNNEL_PUSH:
-           /* XXX: This actions appears to come with it's own
-            * OUTPUT action, so should it be regarded as having
-            * an implicit "pop" following it too?  Put another
-            * way, would two tnl_push() actions in succession
-            * result in a packet with two layers of encap?
-            */
-           if (++sflow_actions->encap_depth > 1) {
-               /* Do not handle multi-encap for now. */
-               sflow_actions->tunnel_err = true;
-           } else {
-               sflow_read_tnl_push_action(a, sflow_actions);
-           }
-           break;
-
-       case OVS_ACTION_ATTR_TRUNC:
-       case OVS_ACTION_ATTR_USERSPACE:
-       case OVS_ACTION_ATTR_RECIRC:
-       case OVS_ACTION_ATTR_HASH:
+        enum ovs_action_attr type = nl_attr_type(a);
+        switch (type) {
+        case OVS_ACTION_ATTR_OUTPUT:
+            /* Capture the output port in case we need it
+             * to get the output tunnel type.
+             */
+            sflow_actions->out_port = nl_attr_get_odp_port(a);
+            break;
+
+        case OVS_ACTION_ATTR_TUNNEL_POP:
+            /* XXX: Do not handle this for now.  It's not clear
+             * if we should start with encap_depth == 1 when we
+             * see an input tunnel,  or if we should assume
+             * that the input tunnel was always "popped" if it
+             * was presented to us decoded in flow->tunnel?
+             *
+             * If we do handle this it might look like this,
+             * as we clear the captured tunnel info and decrement
+             * the encap_depth:
+             *
+             * memset(&sflow_actions->tunnel, 0, sizeof struct flow_tnl);
+             * sflow_actions->tunnel_ipproto = 0;
+             * --sflow_actions->encap_depth;
+             *
+             * but for now just disable the tunnel annotation:
+             */
+            sflow_actions->tunnel_err = true;
+            break;
+
+        case OVS_ACTION_ATTR_TUNNEL_PUSH:
+            /* XXX: This actions appears to come with it's own
+             * OUTPUT action, so should it be regarded as having
+             * an implicit "pop" following it too?  Put another
+             * way, would two tnl_push() actions in succession
+             * result in a packet with two layers of encap?
+             */
+            if (++sflow_actions->encap_depth > 1) {
+                /* Do not handle multi-encap for now. */
+                sflow_actions->tunnel_err = true;
+            } else {
+                sflow_read_tnl_push_action(a, sflow_actions);
+            }
+            break;
+
+        case OVS_ACTION_ATTR_TRUNC:
+        case OVS_ACTION_ATTR_USERSPACE:
+        case OVS_ACTION_ATTR_RECIRC:
+        case OVS_ACTION_ATTR_HASH:
         case OVS_ACTION_ATTR_CT:
     case OVS_ACTION_ATTR_CT_CLEAR:
         case OVS_ACTION_ATTR_METER:
-           break;
-
-       case OVS_ACTION_ATTR_SET_MASKED:
-           /* TODO: apply mask. XXX: Are we likely to see this? */
-           break;
-
-       case OVS_ACTION_ATTR_SET:
-           sflow_read_set_action(nl_attr_get(a), sflow_actions);
-           break;
-
-       case OVS_ACTION_ATTR_PUSH_VLAN:
-       case OVS_ACTION_ATTR_POP_VLAN:
-           /* TODO: 802.1AD(QinQ) is not supported by OVS (yet), so do not
-            * construct a VLAN-stack. The sFlow user-action cookie already
-            * captures the egress VLAN ID so there is nothing more to do here.
-            */
-           break;
-
-       case OVS_ACTION_ATTR_PUSH_MPLS: {
-           const struct ovs_action_push_mpls *mpls = nl_attr_get(a);
-           if (mpls) {
-               dpif_sflow_push_mpls_lse(sflow_actions, mpls->mpls_lse);
-           }
-           break;
-       }
-       case OVS_ACTION_ATTR_POP_MPLS: {
-           dpif_sflow_pop_mpls_lse(sflow_actions);
-           break;
-       }
-       case OVS_ACTION_ATTR_PUSH_ETH:
-       case OVS_ACTION_ATTR_POP_ETH:
-           /* TODO: SFlow does not currently define a MAC-in-MAC
-            * encapsulation structure.  We could use an extension
-            * structure to report this.
-            */
-           break;
+            break;
+
+        case OVS_ACTION_ATTR_SET_MASKED:
+            /* TODO: apply mask. XXX: Are we likely to see this? */
+            break;
+
+        case OVS_ACTION_ATTR_SET:
+            sflow_read_set_action(nl_attr_get(a), sflow_actions);
+            break;
+
+        case OVS_ACTION_ATTR_PUSH_VLAN:
+        case OVS_ACTION_ATTR_POP_VLAN:
+            /* TODO: 802.1AD(QinQ) is not supported by OVS (yet), so do not
+             * construct a VLAN-stack. The sFlow user-action cookie already
+             * captures the egress VLAN ID so there is nothing more to do here.
+             */
+            break;
+
+        case OVS_ACTION_ATTR_PUSH_MPLS: {
+            const struct ovs_action_push_mpls *mpls = nl_attr_get(a);
+            if (mpls) {
+                dpif_sflow_push_mpls_lse(sflow_actions, mpls->mpls_lse);
+            }
+            break;
+        }
+        case OVS_ACTION_ATTR_POP_MPLS: {
+            dpif_sflow_pop_mpls_lse(sflow_actions);
+            break;
+        }
+        case OVS_ACTION_ATTR_PUSH_ETH:
+        case OVS_ACTION_ATTR_POP_ETH:
+            /* TODO: SFlow does not currently define a MAC-in-MAC
+             * encapsulation structure.  We could use an extension
+             * structure to report this.
+             */
+            break;
     case OVS_ACTION_ATTR_CLONE:
         if (flow != NULL) {
             dpif_sflow_read_actions(flow, nl_attr_get(a), nl_attr_get_size(a),
                                     sflow_actions, false);
         }
         break;
-       case OVS_ACTION_ATTR_SAMPLE:
+        case OVS_ACTION_ATTR_SAMPLE:
         case OVS_ACTION_ATTR_PUSH_NSH:
         case OVS_ACTION_ATTR_POP_NSH:
-       case OVS_ACTION_ATTR_UNSPEC:
-       case __OVS_ACTION_ATTR_MAX:
-       default:
-           break;
-       }
+        case OVS_ACTION_ATTR_UNSPEC:
+        case __OVS_ACTION_ATTR_MAX:
+        default:
+            break;
+        }
     }
 }
 
@@ -1336,63 +1336,63 @@ dpif_sflow_received(struct dpif_sflow *ds, const struct dp_packet *packet,
 
     /* Input tunnel. */
     if (flow->tunnel.ip_dst) {
-       memset(&tnlInElem, 0, sizeof(tnlInElem));
-       tnlInElem.tag = SFLFLOW_EX_IPV4_TUNNEL_INGRESS;
-       tnlInProto = in_dsp ? dpif_sflow_tunnel_proto(in_dsp->tunnel_type) : 0;
-       dpif_sflow_tunnel_v4(tnlInProto,
-                            &flow->tunnel,
-                            &tnlInElem.flowType.ipv4);
-       SFLADD_ELEMENT(&fs, &tnlInElem);
-       if (flow->tunnel.tun_id) {
-           memset(&vniInElem, 0, sizeof(vniInElem));
-           vniInElem.tag = SFLFLOW_EX_VNI_INGRESS;
-           vniInElem.flowType.tunnel_vni.vni
-               = ntohll(flow->tunnel.tun_id);
-           SFLADD_ELEMENT(&fs, &vniInElem);
-       }
+        memset(&tnlInElem, 0, sizeof(tnlInElem));
+        tnlInElem.tag = SFLFLOW_EX_IPV4_TUNNEL_INGRESS;
+        tnlInProto = in_dsp ? dpif_sflow_tunnel_proto(in_dsp->tunnel_type) : 0;
+        dpif_sflow_tunnel_v4(tnlInProto,
+                             &flow->tunnel,
+                             &tnlInElem.flowType.ipv4);
+        SFLADD_ELEMENT(&fs, &tnlInElem);
+        if (flow->tunnel.tun_id) {
+            memset(&vniInElem, 0, sizeof(vniInElem));
+            vniInElem.tag = SFLFLOW_EX_VNI_INGRESS;
+            vniInElem.flowType.tunnel_vni.vni
+                = ntohll(flow->tunnel.tun_id);
+            SFLADD_ELEMENT(&fs, &vniInElem);
+        }
     }
 
     /* Output tunnel. */
     if (sflow_actions
-       && sflow_actions->encap_depth == 1
-       && !sflow_actions->tunnel_err
-       && dpif_sflow_cookie_num_outputs(cookie) == 1) {
-       tnlOutProto = sflow_actions->tunnel_ipproto;
-       if (tnlOutProto == 0) {
-           /* Try to infer the ip-protocol from the output port. */
-           if (sflow_actions->out_port != ODPP_NONE) {
-               out_dsp = dpif_sflow_find_port(ds, sflow_actions->out_port);
-               if (out_dsp) {
-                   tnlOutProto = dpif_sflow_tunnel_proto(out_dsp->tunnel_type);
-               }
-           }
-       }
-       memset(&tnlOutElem, 0, sizeof(tnlOutElem));
-       tnlOutElem.tag = SFLFLOW_EX_IPV4_TUNNEL_EGRESS;
-       dpif_sflow_tunnel_v4(tnlOutProto,
-                            &sflow_actions->tunnel,
-                            &tnlOutElem.flowType.ipv4);
-       SFLADD_ELEMENT(&fs, &tnlOutElem);
-       if (sflow_actions->tunnel.tun_id) {
-           memset(&vniOutElem, 0, sizeof(vniOutElem));
-           vniOutElem.tag = SFLFLOW_EX_VNI_EGRESS;
-           vniOutElem.flowType.tunnel_vni.vni
-               = ntohll(sflow_actions->tunnel.tun_id);
-           SFLADD_ELEMENT(&fs, &vniOutElem);
-       }
+        && sflow_actions->encap_depth == 1
+        && !sflow_actions->tunnel_err
+        && dpif_sflow_cookie_num_outputs(cookie) == 1) {
+        tnlOutProto = sflow_actions->tunnel_ipproto;
+        if (tnlOutProto == 0) {
+            /* Try to infer the ip-protocol from the output port. */
+            if (sflow_actions->out_port != ODPP_NONE) {
+                out_dsp = dpif_sflow_find_port(ds, sflow_actions->out_port);
+                if (out_dsp) {
+                    tnlOutProto = dpif_sflow_tunnel_proto(out_dsp->tunnel_type);
+                }
+            }
+        }
+        memset(&tnlOutElem, 0, sizeof(tnlOutElem));
+        tnlOutElem.tag = SFLFLOW_EX_IPV4_TUNNEL_EGRESS;
+        dpif_sflow_tunnel_v4(tnlOutProto,
+                             &sflow_actions->tunnel,
+                             &tnlOutElem.flowType.ipv4);
+        SFLADD_ELEMENT(&fs, &tnlOutElem);
+        if (sflow_actions->tunnel.tun_id) {
+            memset(&vniOutElem, 0, sizeof(vniOutElem));
+            vniOutElem.tag = SFLFLOW_EX_VNI_EGRESS;
+            vniOutElem.flowType.tunnel_vni.vni
+                = ntohll(sflow_actions->tunnel.tun_id);
+            SFLADD_ELEMENT(&fs, &vniOutElem);
+        }
     }
 
     /* MPLS output label stack. */
     if (sflow_actions
-       && sflow_actions->mpls_stack_depth > 0
-       && !sflow_actions->mpls_err
-       && dpif_sflow_cookie_num_outputs(cookie) == 1) {
-       memset(&mplsElem, 0, sizeof(mplsElem));
-       mplsElem.tag = SFLFLOW_EX_MPLS;
-       dpif_sflow_encode_mpls_stack(&mplsElem.flowType.mpls.out_stack,
-                                    mpls_lse_buf,
-                                    sflow_actions);
-       SFLADD_ELEMENT(&fs, &mplsElem);
+        && sflow_actions->mpls_stack_depth > 0
+        && !sflow_actions->mpls_err
+        && dpif_sflow_cookie_num_outputs(cookie) == 1) {
+        memset(&mplsElem, 0, sizeof(mplsElem));
+        mplsElem.tag = SFLFLOW_EX_MPLS;
+        dpif_sflow_encode_mpls_stack(&mplsElem.flowType.mpls.out_stack,
+                                     mpls_lse_buf,
+                                     sflow_actions);
+        SFLADD_ELEMENT(&fs, &mplsElem);
     }
 
     /* Submit the flow sample to be encoded into the next datagram. */
index c990d8a679c0033c1e729a58f62f8e3391f7a08d..c02a0327a58038e0743fb35c852c60e550e47bac 100644 (file)
@@ -3432,7 +3432,7 @@ native_tunnel_output(struct xlate_ctx *ctx, const struct xport *xport,
     /* Backup flow & base_flow data. */
     memcpy(&old_base_flow, &ctx->base_flow, sizeof old_base_flow);
     memcpy(&old_flow, &ctx->xin->flow, sizeof old_flow);
-       
+
     if (flow->tunnel.ip_src) {
         in6_addr_set_mapped_ipv4(&s_ip6, flow->tunnel.ip_src);
     }
index e2e5b4c2f7af1ec88c3c64af6c5e9ad8aa11ce72..c842adc3212cf0404deb9350b4c9a5683eda98ad 100755 (executable)
@@ -192,8 +192,8 @@ def main():
             # print lflow info when the current flow block ends
             if regex_table_id.match(line) or line.strip() == '':
                 lflow = get_lflow_from_cookie(ovsdb_ovnsb, cookie)
-                print_lflow(lflow, "\t* ")
-                print_lflow_nb_hint(lflow, "\t\t* ", ovsdb_ovnnb)
+                print_lflow(lflow, "  * ")
+                print_lflow_nb_hint(lflow, "    * ", ovsdb_ovnnb)
                 cookie = None
 
         print line.strip()
index 95a7772416f098607322760b9336cddae36919de..5f2eac413a5a9263fb0faf9bf5bbe9f6467318ec 100644 (file)
@@ -677,7 +677,7 @@ print_db_changes(struct shash *tables, struct smap *names,
                 }
             }
 
-            printf("\ttable %s", table);
+            printf("  table %s", table);
 
             if (!old_name) {
                 if (new_name) {
@@ -722,7 +722,7 @@ print_db_changes(struct shash *tables, struct smap *names,
                         if (!value_string) {
                             value_string = json_to_string(value, JSSF_SORT);
                         }
-                        printf("\t\t%s=%s\n", column, value_string);
+                        printf("    %s=%s\n", column, value_string);
                         free(value_string);
                     }
                 }
@@ -735,7 +735,7 @@ print_db_changes(struct shash *tables, struct smap *names,
                                     xmemdup0(row_uuid, 8));
                 }
             } else if (columns->type == JSON_NULL) {
-                printf("\t\tdelete row\n");
+                printf("    delete row\n");
                 smap_remove(names, row_uuid);
             }
 
index caf24cce8bb2314140d963267b3af056f72af914..20d5568036565d2d0aecaefc4921380088b4c406 100755 (executable)
@@ -36,16 +36,16 @@ start () {
     set ovs_ctl ${1-start}
     set "$@" --system-id=random
     if test X"$FORCE_COREFILES" != X; then
-       set "$@" --force-corefiles="$FORCE_COREFILES"
+        set "$@" --force-corefiles="$FORCE_COREFILES"
     fi
     if test X"$OVSDB_SERVER_PRIORITY" != X; then
-       set "$@" --ovsdb-server-priority="$OVSDB_SERVER_PRIORITY"
+        set "$@" --ovsdb-server-priority="$OVSDB_SERVER_PRIORITY"
     fi
     if test X"$VSWITCHD_PRIORITY" != X; then
-       set "$@" --ovs-vswitchd-priority="$VSWITCHD_PRIORITY"
+        set "$@" --ovs-vswitchd-priority="$VSWITCHD_PRIORITY"
     fi
     if test X"$VSWITCHD_MLOCKALL" != X; then
-       set "$@" --mlockall="$VSWITCHD_MLOCKALL"
+        set "$@" --mlockall="$VSWITCHD_MLOCKALL"
     fi
     set "$@" $OVS_CTL_OPTS
     "$@"
index 8c9f3694cc07a2383be27e09b1f86b55d5ae0b64..63d048b22f9d31320bf9a9a0830ad0e9d713f205 100755 (executable)
@@ -36,36 +36,36 @@ fi
 
 SERVICE_UNIT=/usr/lib/systemd/system/ovsdb-server.service
 if [ -f $SERVICE_UNIT ] && [ -x /usr/bin/systemctl ]; then
-       if ! systemctl --quiet is-active ovsdb-server.service; then
-               systemctl start ovsdb-server.service
-       fi
+        if ! systemctl --quiet is-active ovsdb-server.service; then
+                systemctl start ovsdb-server.service
+        fi
 else
-       if [ ! -f /var/lock/subsys/openvswitch ]; then
-               /sbin/service openvswitch start
-       fi
+        if [ ! -f /var/lock/subsys/openvswitch ]; then
+                /sbin/service openvswitch start
+        fi
 fi
 
 case "$TYPE" in
-       OVSBridge|OVSUserBridge)
-               ${OTHERSCRIPT} ${CONFIG} $2
-               retval=$?
-               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-br "$DEVICE"
-               ;;
-       OVSPort|OVSIntPort|OVSBond)
-               ${OTHERSCRIPT} ${CONFIG} $2
-               retval=$?
-               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
-               ;;
-       OVSPatchPort|OVSTunnel)
-               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
-               ;;
-       OVSDPDKPort|OVSDPDKRPort|OVSDPDKVhostUserPort|OVSDPDKBond)
-               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
-               ;;
-       *)
-               echo $"Invalid OVS interface type $TYPE"
-               exit 1
-               ;;
+        OVSBridge|OVSUserBridge)
+                ${OTHERSCRIPT} ${CONFIG} $2
+                retval=$?
+                ovs-vsctl -t ${TIMEOUT} -- --if-exists del-br "$DEVICE"
+                ;;
+        OVSPort|OVSIntPort|OVSBond)
+                ${OTHERSCRIPT} ${CONFIG} $2
+                retval=$?
+                ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
+                ;;
+        OVSPatchPort|OVSTunnel)
+                ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
+                ;;
+        OVSDPDKPort|OVSDPDKRPort|OVSDPDKVhostUserPort|OVSDPDKBond)
+                ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
+                ;;
+        *)
+                echo $"Invalid OVS interface type $TYPE"
+                exit 1
+                ;;
 esac
 
 exit $retval
index 1c65f13e6535ac751174256ce37b148607c45c1c..b01461cc42e2037d215059c781a63fec0fb6dfea 100755 (executable)
@@ -31,196 +31,196 @@ source_config
 OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-${REAL_DEVICETYPE}"
 
 if [ ! -x ${OTHERSCRIPT} ]; then
-       OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-eth"
+        OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-eth"
 fi
 
 check_recursion ()
 {
-       [ -n "${UPPEDSTACK}" ] && for _r in ${UPPEDSTACK}; do
-               [ "$_r" = "$1" ] && return 1
-       done
+        [ -n "${UPPEDSTACK}" ] && for _r in ${UPPEDSTACK}; do
+                [ "$_r" = "$1" ] && return 1
+        done
 
-       return 0
+        return 0
 }
 
 ifup_ovs_bridge ()
 {
-       if ovs-vsctl br-exists "${OVS_BRIDGE}"; then :; else
-               /sbin/ifup "${OVS_BRIDGE}"
-       fi
+        if ovs-vsctl br-exists "${OVS_BRIDGE}"; then :; else
+                /sbin/ifup "${OVS_BRIDGE}"
+        fi
 }
 
 if [ -z "${UPPEDSTACK}" ]; then
-       UPPEDSTACK="${DEVICE}"
+        UPPEDSTACK="${DEVICE}"
 fi
 
 [ -n "${OVSREQUIRES}" ] && for _i in ${OVSREQUIRES}; do
-       if ( check_recursion "$_i" ); then
-               UPPEDSTACK="${UPPEDSTACK} $_i" /sbin/ifup "$_i"
-       fi
+        if ( check_recursion "$_i" ); then
+                UPPEDSTACK="${UPPEDSTACK} $_i" /sbin/ifup "$_i"
+        fi
 done
 
 SERVICE_UNIT=/usr/lib/systemd/system/openvswitch.service
 if [ -f $SERVICE_UNIT ] && [ -x /usr/bin/systemctl ]; then
-       if ! systemctl --quiet is-active openvswitch.service; then
-               systemctl start openvswitch.service
-       fi
+        if ! systemctl --quiet is-active openvswitch.service; then
+                systemctl start openvswitch.service
+        fi
 else
-       if [ ! -f /var/lock/subsys/openvswitch ]; then
-               /sbin/service openvswitch start
-       fi
+        if [ ! -f /var/lock/subsys/openvswitch ]; then
+                /sbin/service openvswitch start
+        fi
 fi
 
 case "$TYPE" in
-       OVSBridge|OVSUserBridge)
-               # If bridge already exists and is up, it has been configured through
-               # other cases like OVSPort, OVSIntPort and OVSBond. If it is down or
-               # it does not exist, create it. It is possible for a bridge to exist
-               # because it remained in the OVSDB for some reason, but it won't be up.
-               if [ "${TYPE}" = "OVSUserBridge" ]; then
-                       DATAPATH="netdev"
-               fi
-               if check_device_down "${DEVICE}"; then
-                       ovs-vsctl -t ${TIMEOUT} -- --may-exist add-br "$DEVICE" $OVS_OPTIONS \
-                       ${OVS_EXTRA+-- $OVS_EXTRA} \
-                       ${STP+-- set bridge "$DEVICE" stp_enable="${STP}"} \
-                       ${DATAPATH+-- set bridge "$DEVICE" datapath_type="$DATAPATH"}
-               else
-                       OVSBRIDGECONFIGURED="yes"
-               fi
-
-               # If MACADDR is provided in the interface configuration file,
-               # we need to set it using ovs-vsctl; setting it with the "ip"
-               # command in ifup-eth does not make the change persistent.
-               if [ -n "$MACADDR" ]; then
-                       ovs-vsctl -t ${TIMEOUT} -- set bridge "$DEVICE" \
-                               other-config:hwaddr="$MACADDR"
-               fi
-
-               # When dhcp is enabled, the assumption is that there will be a port to
-               # attach (otherwise, we can't reach out for dhcp). So, we do not
-               # configure the bridge through rhel's ifup infrastructure unless
-               # it is being configured after the port has been configured.
-               # The "OVSINTF" is set only after the port is configured.
-               if [ "${OVSBOOTPROTO}" = "dhcp" ] && [ -n "${OVSINTF}" ]; then
-                       case " ${OVSDHCPINTERFACES} " in
-                               *" ${OVSINTF} "*)
-                                       BOOTPROTO=dhcp ${OTHERSCRIPT} ${CONFIG}
-                               ;;
-                       esac
-               fi
-
-               # When dhcp is not enabled, it is possible that someone may want
-               # a standalone bridge (i.e it may not have any ports). Configure it.
-               if [ "${OVSBOOTPROTO}" != "dhcp" ] && [ -z "${OVSINTF}" ] && \
-                       [ "${OVSBRIDGECONFIGURED}" != "yes" ]; then
-                       ${OTHERSCRIPT} ${CONFIG}
-               fi
-               exit 0
-               ;;
-       OVSPort)
-               ifup_ovs_bridge
-               ${OTHERSCRIPT} ${CONFIG} ${2}
-               # The port might be already in the database but not yet
-               # in the datapath.  So, remove the stale interface first.
-               ovs-vsctl -t ${TIMEOUT} \
-                       -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
-                       -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
-               OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE"
-               ;;
-       OVSIntPort)
-               ifup_ovs_bridge
-               ovs-vsctl -t ${TIMEOUT} \
-                       -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
-                       -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
-                       -- set Interface "$DEVICE" type=internal ${OVS_EXTRA+-- $OVS_EXTRA}
-               if [ -n "${OVSDHCPINTERFACES}" ]; then
-                       for _iface in ${OVSDHCPINTERFACES}; do
-                               /sbin/ifup ${_iface}
-                       done
-               fi
-               BOOTPROTO="${OVSBOOTPROTO}" ${OTHERSCRIPT} ${CONFIG} ${2}
-               ;;
-       OVSBond)
-               ifup_ovs_bridge
-               for _iface in $BOND_IFACES; do
-                       /sbin/ifup ${_iface}
-               done
-               ovs-vsctl -t ${TIMEOUT} \
-                       -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
-                       -- add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
-               OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE"
-               ;;
-       OVSTunnel)
-               ifup_ovs_bridge
-               ovs-vsctl -t ${TIMEOUT} \
-                       -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
-                       -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
-                       -- set Interface "$DEVICE" type=$OVS_TUNNEL_TYPE $OVS_TUNNEL_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
-               ;;
-       OVSPatchPort)
-               ifup_ovs_bridge
-               ovs-vsctl -t ${TIMEOUT} \
-                       -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
-                       -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
-                       -- set Interface "$DEVICE" type=patch options:peer="${OVS_PATCH_PEER}" ${OVS_EXTRA+-- $OVS_EXTRA}
-               ;;
-       OVSDPDKPort)
-               ifup_ovs_bridge
-               BRIDGE_MAC_ORIG=$(get_hwaddr $OVS_BRIDGE)
-               ovs-vsctl -t ${TIMEOUT} \
-                       -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
-                       -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
-                       -- set Interface "$DEVICE" type=dpdk ${OVS_EXTRA+-- $OVS_EXTRA}
-               BRIDGE_MAC=$(get_hwaddr $OVS_BRIDGE)
-               # The bridge may change its MAC to be the lower one among all its
-               # ports. If that happens, bridge configuration (e.g. routes) will
-               # be lost. Restore the post-up bridge configuration again.
-               if [ "$BRIDGE_MAC_ORIG" != "$BRIDGE_MAC" ]; then
-                       ${OTHERSCRIPT} "$OVS_BRIDGE"
-               fi
-               ;;
-       OVSDPDKRPort)
-               ifup_ovs_bridge
-               ovs-vsctl -t ${TIMEOUT} \
-                       -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
-                       -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
-                       -- set Interface "$DEVICE" type=dpdkr ${OVS_EXTRA+-- $OVS_EXTRA}
-               ;;
-       OVSDPDKVhostUserPort)
-               ifup_ovs_bridge
-               PORT_TYPE="dpdkvhostuser"
-               PORT_PATH=""
-               if [ "$OVS_PORT_MODE" == "client" ]; then
-                       PORT_TYPE="dpdkvhostuserclient"
-                       PORT_PATH="options:vhost-server-path=${OVS_PORT_PATH}"
-               fi
-               ovs-vsctl -t ${TIMEOUT} \
-                       -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
-                       -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
-                       -- set Interface "$DEVICE" type=$PORT_TYPE \
-                       $PORT_PATH \
-                       ${OVS_EXTRA+-- $OVS_EXTRA}
-               ;;
-       OVSDPDKBond)
-               ifup_ovs_bridge
-               BRIDGE_MAC_ORIG=$(get_hwaddr $OVS_BRIDGE)
-               for _iface in $BOND_IFACES; do
-                       IFACE_TYPES="${IFACE_TYPES} -- set interface ${_iface} type=dpdk"
-               done
-               ovs-vsctl -t ${TIMEOUT} \
-                       -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
-                       -- add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${IFACE_TYPES} ${OVS_EXTRA+-- $OVS_EXTRA}
-               BRIDGE_MAC=$(get_hwaddr $OVS_BRIDGE)
-               # The bridge may change its MAC to be the lower one among all its
-               # ports. If that happens, bridge configuration (e.g. routes) will
-               # be lost. Restore the post-up bridge configuration again.
-               if [ "$BRIDGE_MAC_ORIG" != "$BRIDGE_MAC" ]; then
-                       ${OTHERSCRIPT} "$OVS_BRIDGE"
-               fi
-               ;;
-       *)
-               echo $"Invalid OVS interface type $TYPE"
-               exit 1
-               ;;
+        OVSBridge|OVSUserBridge)
+                # If bridge already exists and is up, it has been configured through
+                # other cases like OVSPort, OVSIntPort and OVSBond. If it is down or
+                # it does not exist, create it. It is possible for a bridge to exist
+                # because it remained in the OVSDB for some reason, but it won't be up.
+                if [ "${TYPE}" = "OVSUserBridge" ]; then
+                        DATAPATH="netdev"
+                fi
+                if check_device_down "${DEVICE}"; then
+                        ovs-vsctl -t ${TIMEOUT} -- --may-exist add-br "$DEVICE" $OVS_OPTIONS \
+                        ${OVS_EXTRA+-- $OVS_EXTRA} \
+                        ${STP+-- set bridge "$DEVICE" stp_enable="${STP}"} \
+                        ${DATAPATH+-- set bridge "$DEVICE" datapath_type="$DATAPATH"}
+                else
+                        OVSBRIDGECONFIGURED="yes"
+                fi
+
+                # If MACADDR is provided in the interface configuration file,
+                # we need to set it using ovs-vsctl; setting it with the "ip"
+                # command in ifup-eth does not make the change persistent.
+                if [ -n "$MACADDR" ]; then
+                        ovs-vsctl -t ${TIMEOUT} -- set bridge "$DEVICE" \
+                                other-config:hwaddr="$MACADDR"
+                fi
+
+                # When dhcp is enabled, the assumption is that there will be a port to
+                # attach (otherwise, we can't reach out for dhcp). So, we do not
+                # configure the bridge through rhel's ifup infrastructure unless
+                # it is being configured after the port has been configured.
+                # The "OVSINTF" is set only after the port is configured.
+                if [ "${OVSBOOTPROTO}" = "dhcp" ] && [ -n "${OVSINTF}" ]; then
+                        case " ${OVSDHCPINTERFACES} " in
+                                *" ${OVSINTF} "*)
+                                        BOOTPROTO=dhcp ${OTHERSCRIPT} ${CONFIG}
+                                ;;
+                        esac
+                fi
+
+                # When dhcp is not enabled, it is possible that someone may want
+                # a standalone bridge (i.e it may not have any ports). Configure it.
+                if [ "${OVSBOOTPROTO}" != "dhcp" ] && [ -z "${OVSINTF}" ] && \
+                        [ "${OVSBRIDGECONFIGURED}" != "yes" ]; then
+                        ${OTHERSCRIPT} ${CONFIG}
+                fi
+                exit 0
+                ;;
+        OVSPort)
+                ifup_ovs_bridge
+                ${OTHERSCRIPT} ${CONFIG} ${2}
+                # The port might be already in the database but not yet
+                # in the datapath.  So, remove the stale interface first.
+                ovs-vsctl -t ${TIMEOUT} \
+                        -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
+                        -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
+                OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE"
+                ;;
+        OVSIntPort)
+                ifup_ovs_bridge
+                ovs-vsctl -t ${TIMEOUT} \
+                        -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
+                        -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
+                        -- set Interface "$DEVICE" type=internal ${OVS_EXTRA+-- $OVS_EXTRA}
+                if [ -n "${OVSDHCPINTERFACES}" ]; then
+                        for _iface in ${OVSDHCPINTERFACES}; do
+                                /sbin/ifup ${_iface}
+                        done
+                fi
+                BOOTPROTO="${OVSBOOTPROTO}" ${OTHERSCRIPT} ${CONFIG} ${2}
+                ;;
+        OVSBond)
+                ifup_ovs_bridge
+                for _iface in $BOND_IFACES; do
+                        /sbin/ifup ${_iface}
+                done
+                ovs-vsctl -t ${TIMEOUT} \
+                        -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
+                        -- add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
+                OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE"
+                ;;
+        OVSTunnel)
+                ifup_ovs_bridge
+                ovs-vsctl -t ${TIMEOUT} \
+                        -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
+                        -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
+                        -- set Interface "$DEVICE" type=$OVS_TUNNEL_TYPE $OVS_TUNNEL_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
+                ;;
+        OVSPatchPort)
+                ifup_ovs_bridge
+                ovs-vsctl -t ${TIMEOUT} \
+                        -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
+                        -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
+                        -- set Interface "$DEVICE" type=patch options:peer="${OVS_PATCH_PEER}" ${OVS_EXTRA+-- $OVS_EXTRA}
+                ;;
+        OVSDPDKPort)
+                ifup_ovs_bridge
+                BRIDGE_MAC_ORIG=$(get_hwaddr $OVS_BRIDGE)
+                ovs-vsctl -t ${TIMEOUT} \
+                        -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
+                        -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
+                        -- set Interface "$DEVICE" type=dpdk ${OVS_EXTRA+-- $OVS_EXTRA}
+                BRIDGE_MAC=$(get_hwaddr $OVS_BRIDGE)
+                # The bridge may change its MAC to be the lower one among all its
+                # ports. If that happens, bridge configuration (e.g. routes) will
+                # be lost. Restore the post-up bridge configuration again.
+                if [ "$BRIDGE_MAC_ORIG" != "$BRIDGE_MAC" ]; then
+                        ${OTHERSCRIPT} "$OVS_BRIDGE"
+                fi
+                ;;
+        OVSDPDKRPort)
+                ifup_ovs_bridge
+                ovs-vsctl -t ${TIMEOUT} \
+                        -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
+                        -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
+                        -- set Interface "$DEVICE" type=dpdkr ${OVS_EXTRA+-- $OVS_EXTRA}
+                ;;
+        OVSDPDKVhostUserPort)
+                ifup_ovs_bridge
+                PORT_TYPE="dpdkvhostuser"
+                PORT_PATH=""
+                if [ "$OVS_PORT_MODE" == "client" ]; then
+                        PORT_TYPE="dpdkvhostuserclient"
+                        PORT_PATH="options:vhost-server-path=${OVS_PORT_PATH}"
+                fi
+                ovs-vsctl -t ${TIMEOUT} \
+                        -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
+                        -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
+                        -- set Interface "$DEVICE" type=$PORT_TYPE \
+                        $PORT_PATH \
+                        ${OVS_EXTRA+-- $OVS_EXTRA}
+                ;;
+        OVSDPDKBond)
+                ifup_ovs_bridge
+                BRIDGE_MAC_ORIG=$(get_hwaddr $OVS_BRIDGE)
+                for _iface in $BOND_IFACES; do
+                        IFACE_TYPES="${IFACE_TYPES} -- set interface ${_iface} type=dpdk"
+                done
+                ovs-vsctl -t ${TIMEOUT} \
+                        -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
+                        -- add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${IFACE_TYPES} ${OVS_EXTRA+-- $OVS_EXTRA}
+                BRIDGE_MAC=$(get_hwaddr $OVS_BRIDGE)
+                # The bridge may change its MAC to be the lower one among all its
+                # ports. If that happens, bridge configuration (e.g. routes) will
+                # be lost. Restore the post-up bridge configuration again.
+                if [ "$BRIDGE_MAC_ORIG" != "$BRIDGE_MAC" ]; then
+                        ${OTHERSCRIPT} "$OVS_BRIDGE"
+                fi
+                ;;
+        *)
+                echo $"Invalid OVS interface type $TYPE"
+                exit 1
+                ;;
 esac
index 2ef0b575453a1028e7e54ad0f9e6c66cb2ac2363..9be16ffe7a314ef7c2b531d9e9ad8a454139006d 100644 (file)
@@ -214,30 +214,30 @@ Docker network plugins for OVN.
 %build
 %configure \
 %if %{with libcapng}
-       --enable-libcapng \
+        --enable-libcapng \
 %else
-       --disable-libcapng \
+        --disable-libcapng \
 %endif
 %if %{with dpdk}
-       --with-dpdk=$(dirname %{_datadir}/dpdk/*/.config) \
+        --with-dpdk=$(dirname %{_datadir}/dpdk/*/.config) \
 %endif
-       --enable-ssl \
-       --with-pkidir=%{_sharedstatedir}/openvswitch/pki \
+        --enable-ssl \
+        --with-pkidir=%{_sharedstatedir}/openvswitch/pki \
 %if 0%{?fedora} > 22 || %{with build_python3}
-       PYTHON3=%{__python3} \
-       PYTHON=%{__python2}
+        PYTHON3=%{__python3} \
+        PYTHON=%{__python2}
 %else
-       PYTHON=%{__python}
+        PYTHON=%{__python}
 %endif
 
 build-aux/dpdkstrip.py \
 %if %{with dpdk}
-       --dpdk \
+        --dpdk \
 %else
-       --nodpdk \
+        --nodpdk \
 %endif
-       < rhel/usr_lib_systemd_system_ovs-vswitchd.service.in \
-       > rhel/usr_lib_systemd_system_ovs-vswitchd.service
+        < rhel/usr_lib_systemd_system_ovs-vswitchd.service.in \
+        > rhel/usr_lib_systemd_system_ovs-vswitchd.service
 
 make %{?_smp_mflags}
 make selinux-policy
@@ -259,10 +259,10 @@ install -p -D -m 0644 \
         rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
         $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/openvswitch
 for service in openvswitch ovsdb-server ovs-vswitchd ovs-delete-transient-ports \
-               ovn-controller ovn-controller-vtep ovn-northd; do
-       install -p -D -m 0644 \
-                       rhel/usr_lib_systemd_system_${service}.service \
-                       $RPM_BUILD_ROOT%{_unitdir}/${service}.service
+                ovn-controller ovn-controller-vtep ovn-northd; do
+        install -p -D -m 0644 \
+                        rhel/usr_lib_systemd_system_${service}.service \
+                        $RPM_BUILD_ROOT%{_unitdir}/${service}.service
 done
 install -m 0755 rhel/etc_init.d_openvswitch \
         $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init
index c6e6db5d0938828a92886620af416bf799a99bef..daa3dade1f6c0f1839042e91832d9c44b03dd10d 100644 (file)
@@ -46,9 +46,9 @@ Open vSwitch Linux kernel module.
 
 %build
 for flavor in %flavors_to_build; do
-       mkdir _$flavor
-       (cd _$flavor && ../configure --with-linux="%{kernel_source $flavor}")
-       %{__make} -C _$flavor/datapath/linux %{?_smp_mflags}
+        mkdir _$flavor
+        (cd _$flavor && ../configure --with-linux="%{kernel_source $flavor}")
+        %{__make} -C _$flavor/datapath/linux %{?_smp_mflags}
 done
 
 %install
index 97da74217256a63968b67c17ca8c6abaf6127f20..7af7be54aa44a6b7240d404580f6e974358cdb95 100644 (file)
@@ -846,12 +846,12 @@ check_liveness () {
     printf '\n\n--- check_liveness %d ---\n\n\n' $1
     shift
 
-       echo >>expout "OFPT_PORT_STATUS (OF1.3): MOD: 1(p0): addr:
+        echo >>expout "OFPT_PORT_STATUS (OF1.3): MOD: 1(p0): addr:
      config:     0
      state:      $1
      speed: 0 Mbps now, 0 Mbps max"
 
-       AT_CHECK(
+        AT_CHECK(
       [[sed '
 s/ (xid=0x[0-9a-fA-F]*)//
 s/ *duration.*//
@@ -917,12 +917,12 @@ check_liveness () {
     printf '\n\n--- check_liveness %d ---\n\n\n' $1
     shift
 
-       echo >>expout "OFPT_PORT_STATUS (OF1.4): MOD: 1(p0): addr:
+        echo >>expout "OFPT_PORT_STATUS (OF1.4): MOD: 1(p0): addr:
      config:     0
      state:      $1
      speed: 0 Mbps now, 0 Mbps max"
 
-       AT_CHECK(
+        AT_CHECK(
       [[sed '
 s/ (xid=0x[0-9a-fA-F]*)//
 s/ *duration.*//
@@ -988,12 +988,12 @@ check_liveness () {
     printf '\n\n--- check_liveness %d ---\n\n\n' $1
     shift
 
-       echo >>expout "OFPT_PORT_STATUS (OF1.5): MOD: 1(p0): addr:
+        echo >>expout "OFPT_PORT_STATUS (OF1.5): MOD: 1(p0): addr:
      config:     0
      state:      $1
      speed: 0 Mbps now, 0 Mbps max"
 
-       AT_CHECK(
+        AT_CHECK(
       [[sed '
 s/ (xid=0x[0-9a-fA-F]*)//
 s/ *duration.*//
index 8c8bd20adec1b481a87efbac2653ba0a8386f705..053be5d56d011459a307bb5be1665ce196f29fec 100644 (file)
@@ -331,12 +331,12 @@ check_liveness () {
     printf '\n\n--- check_liveness %d ---\n\n\n' $1
     shift
 
-       echo >>expout "OFPT_PORT_STATUS (OF1.3): MOD: 1(p0): addr:
+        echo >>expout "OFPT_PORT_STATUS (OF1.3): MOD: 1(p0): addr:
      config:     0
      state:      $1
      speed: 0 Mbps now, 0 Mbps max"
 
-       AT_CHECK(
+        AT_CHECK(
       [[sed '
 s/ (xid=0x[0-9a-fA-F]*)//
 s/ *duration.*//
@@ -393,12 +393,12 @@ check_liveness () {
     printf '\n\n--- check_liveness %d ---\n\n\n' $1
     shift
 
-       echo >>expout "OFPT_PORT_STATUS (OF1.4): MOD: 1(p0): addr:
+        echo >>expout "OFPT_PORT_STATUS (OF1.4): MOD: 1(p0): addr:
      config:     0
      state:      $1
      speed: 0 Mbps now, 0 Mbps max"
 
-       AT_CHECK(
+        AT_CHECK(
       [[sed '
 s/ (xid=0x[0-9a-fA-F]*)//
 s/ *duration.*//
@@ -455,12 +455,12 @@ check_liveness () {
     printf '\n\n--- check_liveness %d ---\n\n\n' $1
     shift
 
-       echo >>expout "OFPT_PORT_STATUS (OF1.5): MOD: 1(p0): addr:
+        echo >>expout "OFPT_PORT_STATUS (OF1.5): MOD: 1(p0): addr:
      config:     0
      state:      $1
      speed: 0 Mbps now, 0 Mbps max"
 
-       AT_CHECK(
+        AT_CHECK(
       [[sed '
 s/ (xid=0x[0-9a-fA-F]*)//
 s/ *duration.*//
index 2362948e3ba20aac43aa4b92c60dac1df1c4393c..86f872db6bffa10764e99ca8928c43ebc24795f6 100644 (file)
@@ -278,7 +278,7 @@ for src in 0 1 2 3; do
             [[12]][[123]]) out=1 ;;
             32) out=2 ;;
             [[13]][[234]]) out=3 ;;
-           ?1) out=4 ;;
+            ?1) out=4 ;;
             15) out=5 ;;
             *) out=6
         esac
index c6f6a66954447029fc0ad936789905fae6392566..fff395d56feeea7dde0845fac896ce5a5b868fa0 100644 (file)
@@ -36,8 +36,8 @@ filter_flow_install () {
 
 filter_flow_dump () {
     grep 'flow_dump ' | sed '
-       s/.*flow_dump //
-       s/used:[0-9]*\.[0-9]*/used:0.0/
+        s/.*flow_dump //
+        s/used:[0-9]*\.[0-9]*/used:0.0/
     ' | sort | uniq
 }
 
index f3914a4f46b57f1f06874b72e89ddf1e55d5434d..035b0095642aa386c82bee39605a2c299e005863 100644 (file)
@@ -60,10 +60,10 @@ while test ${#} -ge 4; do
        test X"${2}" = Xinterface && \
        test X"${4}" = Xofport; then
           if test X"${3}" = Xeth2; then
-             echo 5
-         else
-             echo -1
-         fi
+              echo 5
+          else
+              echo -1
+          fi
     fi
 
     shift
@@ -109,566 +109,566 @@ EOF
         cat > var/xapi/network.dbcache <<'EOF'
 <?xml version="1.0" ?>
 <xenserver-network-configuration>
-       <pif ref="OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6">
-               <VLAN_slave_of/>
+        <pif ref="OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6">
+                <VLAN_slave_of/>
                 <tunnel_access_PIF_of/>
-               <management>
-                       False
-               </management>
-               <bond_slave_of>
-                       OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
-               </bond_slave_of>
-               <uuid>
-                       bd62a141-091f-3909-e334-0334f67ff3be
-               </uuid>
-               <IP>
-                       
-               </IP>
-               <VLAN_master_of>
-                       OpaqueRef:NULL
-               </VLAN_master_of>
-               <VLAN>
-                       -1
-               </VLAN>
-               <netmask>
-                       
-               </netmask>
-               <other_config/>
-               <MAC>
-                       00:22:19:22:4b:af
-               </MAC>
-               <ip_configuration_mode>
-                       None
-               </ip_configuration_mode>
-               <DNS>
-                       
-               </DNS>
-               <device>
-                       eth0
-               </device>
-               <bond_master_of/>
-               <currently_attached>
-                       False
-               </currently_attached>
-               <gateway>
-                       
-               </gateway>
-               <network>
-                       OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5
-               </network>
-       </pif>
-       <pif ref="OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806">
-               <VLAN_slave_of/>
+                <management>
+                        False
+                </management>
+                <bond_slave_of>
+                        OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
+                </bond_slave_of>
+                <uuid>
+                        bd62a141-091f-3909-e334-0334f67ff3be
+                </uuid>
+                <IP>
+                        
+                </IP>
+                <VLAN_master_of>
+                        OpaqueRef:NULL
+                </VLAN_master_of>
+                <VLAN>
+                        -1
+                </VLAN>
+                <netmask>
+                        
+                </netmask>
+                <other_config/>
+                <MAC>
+                        00:22:19:22:4b:af
+                </MAC>
+                <ip_configuration_mode>
+                        None
+                </ip_configuration_mode>
+                <DNS>
+                        
+                </DNS>
+                <device>
+                        eth0
+                </device>
+                <bond_master_of/>
+                <currently_attached>
+                        False
+                </currently_attached>
+                <gateway>
+                        
+                </gateway>
+                <network>
+                        OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5
+                </network>
+        </pif>
+        <pif ref="OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806">
+                <VLAN_slave_of/>
                 <tunnel_access_PIF_of/>
-               <management>
-                       False
-               </management>
-               <bond_slave_of>
-                       OpaqueRef:NULL
-               </bond_slave_of>
-               <uuid>
-                       df8d35c2-cc3a-a623-7065-d987a29feb75
-               </uuid>
-               <IP>
-                       
-               </IP>
-               <VLAN_master_of>
-                       OpaqueRef:NULL
-               </VLAN_master_of>
-               <VLAN>
-                       -1
-               </VLAN>
-               <netmask>
-                       
-               </netmask>
-               <other_config/>
-               <MAC>
-                       00:1b:21:29:ce:51
-               </MAC>
-               <ip_configuration_mode>
-                       None
-               </ip_configuration_mode>
-               <DNS>
-                       
-               </DNS>
-               <device>
-                       eth4
-               </device>
-               <bond_master_of/>
-               <currently_attached>
-                       False
-               </currently_attached>
-               <gateway>
-                       
-               </gateway>
-               <network>
-                       OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531
-               </network>
-       </pif>
-       <pif ref="OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768">
-               <VLAN_slave_of/>
+                <management>
+                        False
+                </management>
+                <bond_slave_of>
+                        OpaqueRef:NULL
+                </bond_slave_of>
+                <uuid>
+                        df8d35c2-cc3a-a623-7065-d987a29feb75
+                </uuid>
+                <IP>
+                        
+                </IP>
+                <VLAN_master_of>
+                        OpaqueRef:NULL
+                </VLAN_master_of>
+                <VLAN>
+                        -1
+                </VLAN>
+                <netmask>
+                        
+                </netmask>
+                <other_config/>
+                <MAC>
+                        00:1b:21:29:ce:51
+                </MAC>
+                <ip_configuration_mode>
+                        None
+                </ip_configuration_mode>
+                <DNS>
+                        
+                </DNS>
+                <device>
+                        eth4
+                </device>
+                <bond_master_of/>
+                <currently_attached>
+                        False
+                </currently_attached>
+                <gateway>
+                        
+                </gateway>
+                <network>
+                        OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531
+                </network>
+        </pif>
+        <pif ref="OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768">
+                <VLAN_slave_of/>
                 <tunnel_access_PIF_of/>
-               <management>
-                       False
-               </management>
-               <bond_slave_of>
-                       OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
-               </bond_slave_of>
-               <uuid>
-                       2f87fc95-5ab4-571a-2487-3f4ac1985663
-               </uuid>
-               <IP>
-                       
-               </IP>
-               <VLAN_master_of>
-                       OpaqueRef:NULL
-               </VLAN_master_of>
-               <VLAN>
-                       -1
-               </VLAN>
-               <netmask>
-                       
-               </netmask>
-               <other_config/>
-               <MAC>
-                       00:22:19:22:4b:b1
-               </MAC>
-               <ip_configuration_mode>
-                       None
-               </ip_configuration_mode>
-               <DNS>
-                       
-               </DNS>
-               <device>
-                       eth1
-               </device>
-               <bond_master_of/>
-               <currently_attached>
-                       False
-               </currently_attached>
-               <gateway>
-                       
-               </gateway>
-               <network>
-                       OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d
-               </network>
-       </pif>
-       <pif ref="OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e">
-               <VLAN_slave_of/>
+                <management>
+                        False
+                </management>
+                <bond_slave_of>
+                        OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
+                </bond_slave_of>
+                <uuid>
+                        2f87fc95-5ab4-571a-2487-3f4ac1985663
+                </uuid>
+                <IP>
+                        
+                </IP>
+                <VLAN_master_of>
+                        OpaqueRef:NULL
+                </VLAN_master_of>
+                <VLAN>
+                        -1
+                </VLAN>
+                <netmask>
+                        
+                </netmask>
+                <other_config/>
+                <MAC>
+                        00:22:19:22:4b:b1
+                </MAC>
+                <ip_configuration_mode>
+                        None
+                </ip_configuration_mode>
+                <DNS>
+                        
+                </DNS>
+                <device>
+                        eth1
+                </device>
+                <bond_master_of/>
+                <currently_attached>
+                        False
+                </currently_attached>
+                <gateway>
+                        
+                </gateway>
+                <network>
+                        OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d
+                </network>
+        </pif>
+        <pif ref="OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e">
+                <VLAN_slave_of/>
                 <tunnel_access_PIF_of/>
-               <management>
-                       False
-               </management>
-               <bond_slave_of>
-                       OpaqueRef:NULL
-               </bond_slave_of>
-               <uuid>
-                       d2dfdab3-daf4-afea-f055-a25a0d24d714
-               </uuid>
-               <IP>
-                       
-               </IP>
-               <VLAN_master_of>
-                       OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
-               </VLAN_master_of>
-               <VLAN>
-                       4
-               </VLAN>
-               <netmask>
-                       
-               </netmask>
-               <other_config/>
-               <MAC>
-                       fe:ff:ff:ff:ff:ff
-               </MAC>
-               <ip_configuration_mode>
-                       None
-               </ip_configuration_mode>
-               <DNS>
-                       
-               </DNS>
-               <device>
-                       bond0
-               </device>
-               <bond_master_of/>
-               <currently_attached>
-                       True
-               </currently_attached>
-               <gateway>
-                       
-               </gateway>
-               <network>
-                       OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47
-               </network>
-       </pif>
-       <pif ref="OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc">
-               <VLAN_slave_of>
-                       <master>
-                               OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
-                       </master>
-               </VLAN_slave_of>
+                <management>
+                        False
+                </management>
+                <bond_slave_of>
+                        OpaqueRef:NULL
+                </bond_slave_of>
+                <uuid>
+                        d2dfdab3-daf4-afea-f055-a25a0d24d714
+                </uuid>
+                <IP>
+                        
+                </IP>
+                <VLAN_master_of>
+                        OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
+                </VLAN_master_of>
+                <VLAN>
+                        4
+                </VLAN>
+                <netmask>
+                        
+                </netmask>
+                <other_config/>
+                <MAC>
+                        fe:ff:ff:ff:ff:ff
+                </MAC>
+                <ip_configuration_mode>
+                        None
+                </ip_configuration_mode>
+                <DNS>
+                        
+                </DNS>
+                <device>
+                        bond0
+                </device>
+                <bond_master_of/>
+                <currently_attached>
+                        True
+                </currently_attached>
+                <gateway>
+                        
+                </gateway>
+                <network>
+                        OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47
+                </network>
+        </pif>
+        <pif ref="OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc">
+                <VLAN_slave_of>
+                        <master>
+                                OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
+                        </master>
+                </VLAN_slave_of>
                 <tunnel_access_PIF_of/>
-               <management>
-                       False
-               </management>
-               <bond_slave_of>
-                       OpaqueRef:NULL
-               </bond_slave_of>
-               <uuid>
-                       f4ba396e-a993-a592-5fbc-a1d566afb59e
-               </uuid>
-               <IP>
-                       10.0.0.188
-               </IP>
-               <VLAN_master_of>
-                       OpaqueRef:NULL
-               </VLAN_master_of>
-               <VLAN>
-                       -1
-               </VLAN>
-               <netmask>
-                       255.0.0.0
-               </netmask>
-               <other_config/>
-               <MAC>
-                       00:15:17:a0:29:81
-               </MAC>
-               <ip_configuration_mode>
-                       Static
-               </ip_configuration_mode>
-               <DNS>
-                       
-               </DNS>
-               <device>
-                       eth3
-               </device>
-               <bond_master_of/>
-               <currently_attached>
-                       True
-               </currently_attached>
-               <gateway>
-                       
-               </gateway>
-               <network>
-                       OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32
-               </network>
-       </pif>
-       <pif ref="OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15">
-               <VLAN_slave_of/>
+                <management>
+                        False
+                </management>
+                <bond_slave_of>
+                        OpaqueRef:NULL
+                </bond_slave_of>
+                <uuid>
+                        f4ba396e-a993-a592-5fbc-a1d566afb59e
+                </uuid>
+                <IP>
+                        10.0.0.188
+                </IP>
+                <VLAN_master_of>
+                        OpaqueRef:NULL
+                </VLAN_master_of>
+                <VLAN>
+                        -1
+                </VLAN>
+                <netmask>
+                        255.0.0.0
+                </netmask>
+                <other_config/>
+                <MAC>
+                        00:15:17:a0:29:81
+                </MAC>
+                <ip_configuration_mode>
+                        Static
+                </ip_configuration_mode>
+                <DNS>
+                        
+                </DNS>
+                <device>
+                        eth3
+                </device>
+                <bond_master_of/>
+                <currently_attached>
+                        True
+                </currently_attached>
+                <gateway>
+                        
+                </gateway>
+                <network>
+                        OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32
+                </network>
+        </pif>
+        <pif ref="OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15">
+                <VLAN_slave_of/>
                 <tunnel_access_PIF_of/>
-               <management>
-                       True
-               </management>
-               <bond_slave_of>
-                       OpaqueRef:NULL
-               </bond_slave_of>
-               <uuid>
-                       646ca9a1-36ad-e2f9-3ecc-1e5622c201c2
-               </uuid>
-               <IP>
-                       172.18.3.188
-               </IP>
-               <VLAN_master_of>
-                       OpaqueRef:NULL
-               </VLAN_master_of>
-               <VLAN>
-                       -1
-               </VLAN>
-               <netmask>
-                       255.255.0.0
-               </netmask>
-               <other_config/>
-               <MAC>
-                       00:15:17:a0:29:80
-               </MAC>
-               <ip_configuration_mode>
-                       DHCP
-               </ip_configuration_mode>
-               <DNS>
-                       
-               </DNS>
-               <device>
-                       eth2
-               </device>
-               <bond_master_of/>
-               <currently_attached>
-                       True
-               </currently_attached>
-               <gateway>
-                       
-               </gateway>
-               <network>
-                       OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe
-               </network>
-       </pif>
-       <pif ref="OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3">
-               <VLAN_slave_of/>
+                <management>
+                        True
+                </management>
+                <bond_slave_of>
+                        OpaqueRef:NULL
+                </bond_slave_of>
+                <uuid>
+                        646ca9a1-36ad-e2f9-3ecc-1e5622c201c2
+                </uuid>
+                <IP>
+                        172.18.3.188
+                </IP>
+                <VLAN_master_of>
+                        OpaqueRef:NULL
+                </VLAN_master_of>
+                <VLAN>
+                        -1
+                </VLAN>
+                <netmask>
+                        255.255.0.0
+                </netmask>
+                <other_config/>
+                <MAC>
+                        00:15:17:a0:29:80
+                </MAC>
+                <ip_configuration_mode>
+                        DHCP
+                </ip_configuration_mode>
+                <DNS>
+                        
+                </DNS>
+                <device>
+                        eth2
+                </device>
+                <bond_master_of/>
+                <currently_attached>
+                        True
+                </currently_attached>
+                <gateway>
+                        
+                </gateway>
+                <network>
+                        OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe
+                </network>
+        </pif>
+        <pif ref="OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3">
+                <VLAN_slave_of/>
                 <tunnel_access_PIF_of/>
-               <management>
-                       False
-               </management>
-               <bond_slave_of>
-                       OpaqueRef:NULL
-               </bond_slave_of>
-               <uuid>
-                       3941edd2-865b-8dd8-61f0-199f5e1fa652
-               </uuid>
-               <IP>
-                       
-               </IP>
-               <VLAN_master_of>
-                       OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
-               </VLAN_master_of>
-               <VLAN>
-                       123
-               </VLAN>
-               <netmask>
-                       
-               </netmask>
-               <other_config/>
-               <MAC>
-                       fe:ff:ff:ff:ff:ff
-               </MAC>
-               <ip_configuration_mode>
-                       None
-               </ip_configuration_mode>
-               <DNS>
-                       
-               </DNS>
-               <device>
-                       eth3
-               </device>
-               <bond_master_of/>
-               <currently_attached>
-                       True
-               </currently_attached>
-               <gateway>
-                       
-               </gateway>
-               <network>
-                       OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17
-               </network>
-       </pif>
-       <pif ref="OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11">
-               <VLAN_slave_of>
-                       <master>
-                               OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
-                       </master>
-               </VLAN_slave_of>
+                <management>
+                        False
+                </management>
+                <bond_slave_of>
+                        OpaqueRef:NULL
+                </bond_slave_of>
+                <uuid>
+                        3941edd2-865b-8dd8-61f0-199f5e1fa652
+                </uuid>
+                <IP>
+                        
+                </IP>
+                <VLAN_master_of>
+                        OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
+                </VLAN_master_of>
+                <VLAN>
+                        123
+                </VLAN>
+                <netmask>
+                        
+                </netmask>
+                <other_config/>
+                <MAC>
+                        fe:ff:ff:ff:ff:ff
+                </MAC>
+                <ip_configuration_mode>
+                        None
+                </ip_configuration_mode>
+                <DNS>
+                        
+                </DNS>
+                <device>
+                        eth3
+                </device>
+                <bond_master_of/>
+                <currently_attached>
+                        True
+                </currently_attached>
+                <gateway>
+                        
+                </gateway>
+                <network>
+                        OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17
+                </network>
+        </pif>
+        <pif ref="OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11">
+                <VLAN_slave_of>
+                        <master>
+                                OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
+                        </master>
+                </VLAN_slave_of>
                 <tunnel_access_PIF_of/>
-               <management>
-                       False
-               </management>
-               <bond_slave_of>
-                       OpaqueRef:NULL
-               </bond_slave_of>
-               <uuid>
-                       6c0327a9-afa3-fc19-6798-a1bfe20095ed
-               </uuid>
-               <IP>
-                       
-               </IP>
-               <VLAN_master_of>
-                       OpaqueRef:NULL
-               </VLAN_master_of>
-               <VLAN>
-                       -1
-               </VLAN>
-               <netmask>
-                       
-               </netmask>
-               <other_config/>
-               <MAC>
-                       00:22:19:22:4b:af
-               </MAC>
-               <ip_configuration_mode>
-                       None
-               </ip_configuration_mode>
-               <DNS>
-                       
-               </DNS>
-               <device>
-                       bond0
-               </device>
-               <bond_master_of>
-                       <slave>
-                               OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
-                       </slave>
-               </bond_master_of>
-               <currently_attached>
-                       True
-               </currently_attached>
-               <gateway>
-                       
-               </gateway>
-               <network>
-                       OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a
-               </network>
-       </pif>
-       <bond ref="OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e">
-               <master>
-                       OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
-               </master>
-               <uuid>
-                       dad825f1-6d81-386e-849c-5589281e53e1
-               </uuid>
-               <slaves>
-                       <slave>
-                               OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
-                       </slave>
-                       <slave>
-                               OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
-                       </slave>
-               </slaves>
-       </bond>
-       <vlan ref="OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c">
-               <tagged_PIF>
-                       OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
-               </tagged_PIF>
-               <uuid>
-                       841814da-d0d2-9da4-0b2e-b6143480bbfb
-               </uuid>
-               <untagged_PIF>
-                       OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
-               </untagged_PIF>
-       </vlan>
-       <vlan ref="OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297">
-               <tagged_PIF>
-                       OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
-               </tagged_PIF>
-               <uuid>
-                       399279a2-5ccd-5368-9af3-8622a1f1ac82
-               </uuid>
-               <untagged_PIF>
-                       OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
-               </untagged_PIF>
-       </vlan>
-       <network ref="OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47">
-               <PIFs>
-                       <PIF>
-                               OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
-                       </PIF>
-               </PIFs>
-               <bridge>
-                       xapi2
-               </bridge>
-               <other_config/>
-               <uuid>
-                       99be2da4-6c33-6f8e-49ea-3bc592fe3c85
-               </uuid>
-       </network>
-       <network ref="OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32">
-               <PIFs>
-                       <PIF>
-                               OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
-                       </PIF>
-               </PIFs>
-               <bridge>
-                       xenbr3
-               </bridge>
-               <other_config/>
-               <uuid>
-                       2902ae1b-8013-897a-b697-0b200ea3aaa5
-               </uuid>
-       </network>
-       <network ref="OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a">
-               <PIFs>
-                       <PIF>
-                               OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
-                       </PIF>
-               </PIFs>
-               <bridge>
-                       xapi1
-               </bridge>
-               <other_config/>
-               <uuid>
-                       45cbbb43-113d-a712-3231-c6463f253cef
-               </uuid>
-       </network>
-       <network ref="OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d">
-               <PIFs>
-                       <PIF>
-                               OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
-                       </PIF>
-               </PIFs>
-               <bridge>
-                       xenbr1
-               </bridge>
-               <other_config/>
-               <uuid>
-                       99f8771a-645a-26a3-e06c-30a401f1d009
-               </uuid>
-       </network>
-       <network ref="OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe">
-               <PIFs>
-                       <PIF>
-                               OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15
-                       </PIF>
-               </PIFs>
-               <bridge>
-                       xenbr2
-               </bridge>
-               <other_config/>
-               <uuid>
-                       d08c8749-0c8f-9e8d-ce25-fd364661ee99
-               </uuid>
-       </network>
-       <network ref="OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5">
-               <PIFs>
-                       <PIF>
-                               OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
-                       </PIF>
-               </PIFs>
-               <bridge>
-                       xenbr0
-               </bridge>
-               <other_config>
-                       <vswitch-disable-in-band>
-                               true
-                       </vswitch-disable-in-band>
-               </other_config>
-               <uuid>
-                       c9eecb03-560d-61de-b6a8-56dfc766f67e
-               </uuid>
-       </network>
-       <network ref="OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531">
-               <PIFs>
-                       <PIF>
-                               OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806
-                       </PIF>
-               </PIFs>
-               <bridge>
-                       xenbr4
-               </bridge>
-               <other_config/>
-               <uuid>
-                       d2c14c89-29cc-51d4-7664-633eff02b2ad
-               </uuid>
-       </network>
-       <network ref="OpaqueRef:0b7354a4-8f4b-aa08-2f16-a22c117e4211">
-               <PIFs/>
-               <bridge>
-                       xapi0
-               </bridge>
-               <other_config/>
-               <uuid>
-                       dc0f0632-c2aa-1b78-2fea-0d3a23c51740
-               </uuid>
-       </network>
-       <network ref="OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17">
-               <PIFs>
-                       <PIF>
-                               OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
-                       </PIF>
-               </PIFs>
-               <bridge>
-                       xapi3
-               </bridge>
-               <other_config/>
-               <uuid>
-                       db7bdc03-074d-42ae-fc73-9b06de1d57f6
-               </uuid>
-       </network>
+                <management>
+                        False
+                </management>
+                <bond_slave_of>
+                        OpaqueRef:NULL
+                </bond_slave_of>
+                <uuid>
+                        6c0327a9-afa3-fc19-6798-a1bfe20095ed
+                </uuid>
+                <IP>
+                        
+                </IP>
+                <VLAN_master_of>
+                        OpaqueRef:NULL
+                </VLAN_master_of>
+                <VLAN>
+                        -1
+                </VLAN>
+                <netmask>
+                        
+                </netmask>
+                <other_config/>
+                <MAC>
+                        00:22:19:22:4b:af
+                </MAC>
+                <ip_configuration_mode>
+                        None
+                </ip_configuration_mode>
+                <DNS>
+                        
+                </DNS>
+                <device>
+                        bond0
+                </device>
+                <bond_master_of>
+                        <slave>
+                                OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
+                        </slave>
+                </bond_master_of>
+                <currently_attached>
+                        True
+                </currently_attached>
+                <gateway>
+                        
+                </gateway>
+                <network>
+                        OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a
+                </network>
+        </pif>
+        <bond ref="OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e">
+                <master>
+                        OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
+                </master>
+                <uuid>
+                        dad825f1-6d81-386e-849c-5589281e53e1
+                </uuid>
+                <slaves>
+                        <slave>
+                                OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
+                        </slave>
+                        <slave>
+                                OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
+                        </slave>
+                </slaves>
+        </bond>
+        <vlan ref="OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c">
+                <tagged_PIF>
+                        OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
+                </tagged_PIF>
+                <uuid>
+                        841814da-d0d2-9da4-0b2e-b6143480bbfb
+                </uuid>
+                <untagged_PIF>
+                        OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
+                </untagged_PIF>
+        </vlan>
+        <vlan ref="OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297">
+                <tagged_PIF>
+                        OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
+                </tagged_PIF>
+                <uuid>
+                        399279a2-5ccd-5368-9af3-8622a1f1ac82
+                </uuid>
+                <untagged_PIF>
+                        OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
+                </untagged_PIF>
+        </vlan>
+        <network ref="OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47">
+                <PIFs>
+                        <PIF>
+                                OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
+                        </PIF>
+                </PIFs>
+                <bridge>
+                        xapi2
+                </bridge>
+                <other_config/>
+                <uuid>
+                        99be2da4-6c33-6f8e-49ea-3bc592fe3c85
+                </uuid>
+        </network>
+        <network ref="OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32">
+                <PIFs>
+                        <PIF>
+                                OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
+                        </PIF>
+                </PIFs>
+                <bridge>
+                        xenbr3
+                </bridge>
+                <other_config/>
+                <uuid>
+                        2902ae1b-8013-897a-b697-0b200ea3aaa5
+                </uuid>
+        </network>
+        <network ref="OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a">
+                <PIFs>
+                        <PIF>
+                                OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
+                        </PIF>
+                </PIFs>
+                <bridge>
+                        xapi1
+                </bridge>
+                <other_config/>
+                <uuid>
+                        45cbbb43-113d-a712-3231-c6463f253cef
+                </uuid>
+        </network>
+        <network ref="OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d">
+                <PIFs>
+                        <PIF>
+                                OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
+                        </PIF>
+                </PIFs>
+                <bridge>
+                        xenbr1
+                </bridge>
+                <other_config/>
+                <uuid>
+                        99f8771a-645a-26a3-e06c-30a401f1d009
+                </uuid>
+        </network>
+        <network ref="OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe">
+                <PIFs>
+                        <PIF>
+                                OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15
+                        </PIF>
+                </PIFs>
+                <bridge>
+                        xenbr2
+                </bridge>
+                <other_config/>
+                <uuid>
+                        d08c8749-0c8f-9e8d-ce25-fd364661ee99
+                </uuid>
+        </network>
+        <network ref="OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5">
+                <PIFs>
+                        <PIF>
+                                OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
+                        </PIF>
+                </PIFs>
+                <bridge>
+                        xenbr0
+                </bridge>
+                <other_config>
+                        <vswitch-disable-in-band>
+                                true
+                        </vswitch-disable-in-band>
+                </other_config>
+                <uuid>
+                        c9eecb03-560d-61de-b6a8-56dfc766f67e
+                </uuid>
+        </network>
+        <network ref="OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531">
+                <PIFs>
+                        <PIF>
+                                OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806
+                        </PIF>
+                </PIFs>
+                <bridge>
+                        xenbr4
+                </bridge>
+                <other_config/>
+                <uuid>
+                        d2c14c89-29cc-51d4-7664-633eff02b2ad
+                </uuid>
+        </network>
+        <network ref="OpaqueRef:0b7354a4-8f4b-aa08-2f16-a22c117e4211">
+                <PIFs/>
+                <bridge>
+                        xapi0
+                </bridge>
+                <other_config/>
+                <uuid>
+                        dc0f0632-c2aa-1b78-2fea-0d3a23c51740
+                </uuid>
+        </network>
+        <network ref="OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17">
+                <PIFs>
+                        <PIF>
+                                OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
+                        </PIF>
+                </PIFs>
+                <bridge>
+                        xapi3
+                </bridge>
+                <other_config/>
+                <uuid>
+                        db7bdc03-074d-42ae-fc73-9b06de1d57f6
+                </uuid>
+        </network>
         <pool ref="OpaqueRef:a765d06c-fc82-cc67-8f6c-fd8db45f6a84">
                 <other_config>
                         <vswitch-controller-fail-mode>
index ee81008585418497d4ee04c703302b9a92bbc3ba..a7f75ac67acb928ae832299a3f8db2b7cf769a7a 100644 (file)
@@ -735,12 +735,12 @@ check_liveness () {
     printf '\n\n--- check_liveness %d ---\n\n\n' $1
     shift
 
-       echo >>expout "OFPT_PORT_STATUS (OF1.3): MOD: 1(p0): addr:
+        echo >>expout "OFPT_PORT_STATUS (OF1.3): MOD: 1(p0): addr:
      config:     0
      state:      $1
      speed: 0 Mbps now, 0 Mbps max"
 
-       AT_CHECK(
+        AT_CHECK(
       [[sed '
 s/ (xid=0x[0-9a-fA-F]*)//
 s/ *duration.*//
@@ -831,12 +831,12 @@ check_liveness () {
     printf '\n\n--- check_liveness %d ---\n\n\n' $1
     shift
 
-       echo >>expout "OFPT_PORT_STATUS (OF1.4): MOD: 1(p0): addr:
+        echo >>expout "OFPT_PORT_STATUS (OF1.4): MOD: 1(p0): addr:
      config:     0
      state:      $1
      speed: 0 Mbps now, 0 Mbps max"
 
-       AT_CHECK(
+        AT_CHECK(
       [[sed '
 s/ (xid=0x[0-9a-fA-F]*)//
 s/ *duration.*//
@@ -927,12 +927,12 @@ check_liveness () {
     printf '\n\n--- check_liveness %d ---\n\n\n' $1
     shift
 
-       echo >>expout "OFPT_PORT_STATUS (OF1.5): MOD: 1(p0): addr:
+        echo >>expout "OFPT_PORT_STATUS (OF1.5): MOD: 1(p0): addr:
      config:     0
      state:      $1
      speed: 0 Mbps now, 0 Mbps max"
 
-       AT_CHECK(
+        AT_CHECK(
       [[sed '
 s/ (xid=0x[0-9a-fA-F]*)//
 s/ *duration.*//
index 50e827e8e36c090b89de26eb2b6a4cb9012e20e4..d7989259b9225e02f4973bae238af8af5cda1ae9 100644 (file)
@@ -2537,8 +2537,8 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
 dnl Modified MPLS pop action.
 dnl The input is a frame with two MPLS label stack entries which tcpdump -vve shows as:
 dnl 60:66:66:66:01:00 > 50:54:00:00:00:07, ethertype MPLS multicast (0x8848), length 66: MPLS (label 20, exp 0, ttl 32)
-dnl            (label 20, exp 0, [S], ttl 31)
-dnl            (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
+dnl             (label 20, exp 0, [S], ttl 31)
+dnl             (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
 dnl        192.168.0.1.80 > 192.168.0.2.0: Flags [none], cksum 0x7744 (correct), seq 42:46, win 10000, length 4
 AT_CHECK([ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log])
 
@@ -2564,8 +2564,8 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
 dnl Modified MPLS pop action.
 dnl The input is a frame with two MPLS label stack entries which tcpdump -vve shows as:
 dnl 60:66:66:66:01:01 > 50:54:00:00:00:07, ethertype MPLS unicast (0x8847), length 66: MPLS (label 20, exp 0, ttl 32)
-dnl            (label 20, exp 0, [S], ttl 31)
-dnl            (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
+dnl             (label 20, exp 0, [S], ttl 31)
+dnl             (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
 dnl        192.168.0.1.80 > 192.168.0.2.0: Flags [none], cksum 0x7744 (correct), seq 42:46, win 10000, length 4
 AT_CHECK([ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log])
 
@@ -2591,8 +2591,8 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
 dnl Modified MPLS pop action.
 dnl The input is a frame with two MPLS label stack entries which tcpdump -vve shows as:
 dnl 60:66:66:66:01:02 > 50:54:00:00:00:07, ethertype MPLS multicast (0x8848), length 66: MPLS (label 20, exp 0, ttl 32)
-dnl            (label 20, exp 0, [S], ttl 31)
-dnl            (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
+dnl             (label 20, exp 0, [S], ttl 31)
+dnl             (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
 dnl        192.168.0.1.80 > 192.168.0.2.0: Flags [none], cksum 0x7744 (correct), seq 42:46, win 10000, length 4
 AT_CHECK([ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log])
 
@@ -2618,8 +2618,8 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
 dnl Modified MPLS pop action.
 dnl The input is a frame with two MPLS label stack entries which tcpdump -vve shows as:
 dnl 60:66:66:66:02:00 > 50:54:00:00:02:00, ethertype MPLS unicast (0x8847), length 66: MPLS (label 20, exp 0, ttl 32)
-dnl            (label 20, exp 0, [S], ttl 31)
-dnl            (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
+dnl             (label 20, exp 0, [S], ttl 31)
+dnl             (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
 dnl        192.168.0.1.80 > 192.168.0.2.0: Flags [none], cksum 0x7744 (correct), seq 42:46, win 10000, length 4
 AT_CHECK([ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log])
 
@@ -2645,8 +2645,8 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
 dnl Modified MPLS pop action.
 dnl The input is a frame with two MPLS label stack entries which tcpdump -vve shows as:
 dnl 60:66:66:66:02:01 > 50:54:00:00:02:01, ethertype MPLS multicast (0x8848), length 66: MPLS (label 20, exp 0, ttl 32)
-dnl            (label 20, exp 0, [S], ttl 31)
-dnl            (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
+dnl             (label 20, exp 0, [S], ttl 31)
+dnl             (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
 dnl        192.168.0.1.80 > 192.168.0.2.0: Flags [none], cksum 0x7744 (correct), seq 42:46, win 10000, length 4
 AT_CHECK([ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log])
 
@@ -2673,8 +2673,8 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
 dnl Modified MPLS pop action.
 dnl The input is a frame with two MPLS label stack entries which tcpdump -vve shows as:
 dnl 60:66:66:66:02:10 > 50:54:00:00:00:07, ethertype MPLS unicast (0x8847), length 66: MPLS (label 20, exp 0, ttl 32)
-dnl            (label 20, exp 0, [S], ttl 31)
-dnl            (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
+dnl             (label 20, exp 0, [S], ttl 31)
+dnl             (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
 dnl        192.168.0.1.80 > 192.168.0.2.0: Flags [none], cksum 0x7744 (correct), seq 42:46, win 10000, length 4
 AT_CHECK([ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log])
 
@@ -2700,9 +2700,9 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
 dnl Modified MPLS pop action.
 dnl The input is a frame with three MPLS label stack entries which tcpdump -vve shows as:
 dnl 60:66:66:66:03:00 > 50:54:00:00:00:07, ethertype MPLS unicast (0x8847), length 66: MPLS (label 20, exp 0, ttl 32)
-dnl            (label 20, exp 0, ttl 31)
-dnl            (label 20, exp 0, [S], ttl 30)
-dnl            (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
+dnl             (label 20, exp 0, ttl 31)
+dnl             (label 20, exp 0, [S], ttl 30)
+dnl             (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
 dnl        192.168.0.1.80 > 192.168.0.2.0: Flags [none], cksum 0x7744 (correct), seq 42:46, win 10000, length 4
 AT_CHECK([ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log])
 
@@ -2728,9 +2728,9 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
 dnl Modified MPLS pop action.
 dnl The input is a frame with three MPLS label stack entries which tcpdump -vve shows as:
 dnl 60:66:66:66:03:01 > 50:54:00:00:00:00, ethertype MPLS multicast (0x8848), length 66: MPLS (label 20, exp 0, ttl 32)
-dnl            (label 20, exp 0, ttl 31)
-dnl            (label 20, exp 0, [S], ttl 30)
-dnl            (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
+dnl             (label 20, exp 0, ttl 31)
+dnl             (label 20, exp 0, [S], ttl 30)
+dnl             (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
 dnl        192.168.0.1.80 > 192.168.0.2.0: Flags [none], cksum 0x7744 (correct), seq 42:46, win 10000, length 4
 AT_CHECK([ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log])
 
@@ -2756,9 +2756,9 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
 dnl Modified MPLS pop action.
 dnl The input is a frame with three MPLS label stack entries which tcpdump -vve shows as:
 dnl 60:66:66:66:03:10 > 50:54:00:00:00:00, ethertype MPLS unicast (0x8847), length 66: MPLS (label 20, exp 0, ttl 32)
-dnl            (label 20, exp 0, ttl 31)
-dnl            (label 20, exp 0, [S], ttl 30)
-dnl            (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
+dnl             (label 20, exp 0, ttl 31)
+dnl             (label 20, exp 0, [S], ttl 30)
+dnl             (tos 0x0, ttl 254, id 0, offset 0, flags [none], proto TCP (6), length 44)
 dnl        192.168.0.1.80 > 192.168.0.2.0: Flags [none], cksum 0x7744 (correct), seq 42:46, win 10000, length 4
 AT_CHECK([ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log])
 
@@ -4771,12 +4771,12 @@ OVS_VSWITCHD_START
 add_of_ports br0 1 2 3
 ovs-vsctl \
         -- set Bridge br0 fail-mode=standalone mirrors=@m1,@m2 \
-       -- --id=@m1 create Mirror name=m1 select_all=true output_vlan=500 \
-       -- --id=@m2 create Mirror name=m2 select_all=true output_vlan=501 \
-       -- set Port br0 tag=0 \
-       -- set Port p1 tag=0 \
-       -- set Port p2 tag=500 \
-       -- set Port p3 tag=501
+        -- --id=@m1 create Mirror name=m1 select_all=true output_vlan=500 \
+        -- --id=@m2 create Mirror name=m2 select_all=true output_vlan=501 \
+        -- set Port br0 tag=0 \
+        -- set Port p1 tag=0 \
+        -- set Port p2 tag=500 \
+        -- set Port p3 tag=501
 
 flow='in_port=1'
 AT_CHECK([ovs-appctl ofproto/trace br0 "$flow"], [0], [stdout])
@@ -5993,363 +5993,363 @@ m4_define([CHECK_SFLOW_SAMPLING_PACKET],
   OVS_APP_EXIT_AND_WAIT([test-sflow])
 
   AT_CHECK_UNQUOTED([[sort sflow.log | $EGREP 'HEADER|ERROR' | sed 's/ /\
-       /g']], [0], [dnl
+        /g']], [0], [dnl
 HEADER
-       dgramSeqNo=1
-       ds=127.0.0.1>2:1000
-       fsSeqNo=1
-       in_vlan=0
-       in_priority=0
-       out_vlan=0
-       out_priority=0
-       meanSkip=1
-       samplePool=1
-       dropEvents=0
-       in_ifindex=1004
-       in_format=0
-       out_ifindex=2
-       out_format=2
-       hdr_prot=1
-       pkt_len=46
-       stripped=4
-       hdr_len=42
-       hdr=FF-FF-FF-FF-FF-FF-50-54-00-00-00-05-08-06-00-01-08-00-06-04-00-01-50-54-00-00-00-05-C0-A8-00-02-00-00-00-00-00-00-C0-A8-00-01
+        dgramSeqNo=1
+        ds=127.0.0.1>2:1000
+        fsSeqNo=1
+        in_vlan=0
+        in_priority=0
+        out_vlan=0
+        out_priority=0
+        meanSkip=1
+        samplePool=1
+        dropEvents=0
+        in_ifindex=1004
+        in_format=0
+        out_ifindex=2
+        out_format=2
+        hdr_prot=1
+        pkt_len=46
+        stripped=4
+        hdr_len=42
+        hdr=FF-FF-FF-FF-FF-FF-50-54-00-00-00-05-08-06-00-01-08-00-06-04-00-01-50-54-00-00-00-05-C0-A8-00-02-00-00-00-00-00-00-C0-A8-00-01
 HEADER
-       dgramSeqNo=1
-       ds=127.0.0.1>2:1000
-       fsSeqNo=2
-       in_vlan=0
-       in_priority=0
-       out_vlan=0
-       out_priority=0
-       meanSkip=1
-       samplePool=2
-       dropEvents=0
-       in_ifindex=1003
-       in_format=0
-       out_ifindex=2
-       out_format=2
-       hdr_prot=1
-       pkt_len=46
-       stripped=4
-       hdr_len=42
-       hdr=FF-FF-FF-FF-FF-FF-50-54-00-00-00-07-08-06-00-01-08-00-06-04-00-01-50-54-00-00-00-07-C0-A8-00-01-00-00-00-00-00-00-C0-A8-00-02
+        dgramSeqNo=1
+        ds=127.0.0.1>2:1000
+        fsSeqNo=2
+        in_vlan=0
+        in_priority=0
+        out_vlan=0
+        out_priority=0
+        meanSkip=1
+        samplePool=2
+        dropEvents=0
+        in_ifindex=1003
+        in_format=0
+        out_ifindex=2
+        out_format=2
+        hdr_prot=1
+        pkt_len=46
+        stripped=4
+        hdr_len=42
+        hdr=FF-FF-FF-FF-FF-FF-50-54-00-00-00-07-08-06-00-01-08-00-06-04-00-01-50-54-00-00-00-07-C0-A8-00-01-00-00-00-00-00-00-C0-A8-00-02
 HEADER
-       dgramSeqNo=1
-       ds=127.0.0.1>2:1000
-       fsSeqNo=3
-       in_vlan=0
-       in_priority=0
-       out_vlan=0
-       out_priority=0
-       meanSkip=1
-       samplePool=3
-       dropEvents=0
-       in_ifindex=1004
-       in_format=0
-       out_ifindex=1003
-       out_format=0
-       hdr_prot=1
-       pkt_len=110
-       stripped=4
-       hdr_len=106
-       hdr=50-54-00-00-00-07-50-54-00-00-00-05-08-00-45-00-00-5C-00-00-00-00-40-01-F9-4D-C0-A8-00-01-C0-A8-00-02-08-00-13-FC-00-00-00-00-00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F-10-11-12-13-14-15-16-17-18-19-1A-1B-1C-1D-1E-1F-20-21-22-23-24-25-26-27-28-29-2A-2B-2C-2D-2E-2F-30-31-32-33-34-35-36-37-38-39-3A-3B-3C-3D-3E-3F
+        dgramSeqNo=1
+        ds=127.0.0.1>2:1000
+        fsSeqNo=3
+        in_vlan=0
+        in_priority=0
+        out_vlan=0
+        out_priority=0
+        meanSkip=1
+        samplePool=3
+        dropEvents=0
+        in_ifindex=1004
+        in_format=0
+        out_ifindex=1003
+        out_format=0
+        hdr_prot=1
+        pkt_len=110
+        stripped=4
+        hdr_len=106
+        hdr=50-54-00-00-00-07-50-54-00-00-00-05-08-00-45-00-00-5C-00-00-00-00-40-01-F9-4D-C0-A8-00-01-C0-A8-00-02-08-00-13-FC-00-00-00-00-00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F-10-11-12-13-14-15-16-17-18-19-1A-1B-1C-1D-1E-1F-20-21-22-23-24-25-26-27-28-29-2A-2B-2C-2D-2E-2F-30-31-32-33-34-35-36-37-38-39-3A-3B-3C-3D-3E-3F
 HEADER
-       dgramSeqNo=1
-       ds=127.0.0.1>2:1000
-       fsSeqNo=4
-       in_vlan=0
-       in_priority=0
-       out_vlan=0
-       out_priority=0
-       meanSkip=1
-       samplePool=4
-       dropEvents=0
-       in_ifindex=1003
-       in_format=0
-       out_ifindex=1004
-       out_format=0
-       hdr_prot=1
-       pkt_len=110
-       stripped=4
-       hdr_len=106
-       hdr=50-54-00-00-00-05-50-54-00-00-00-07-08-00-45-00-00-5C-00-00-00-00-40-01-F9-4D-C0-A8-00-02-C0-A8-00-01-00-00-1B-FC-00-00-00-00-00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F-10-11-12-13-14-15-16-17-18-19-1A-1B-1C-1D-1E-1F-20-21-22-23-24-25-26-27-28-29-2A-2B-2C-2D-2E-2F-30-31-32-33-34-35-36-37-38-39-3A-3B-3C-3D-3E-3F
+        dgramSeqNo=1
+        ds=127.0.0.1>2:1000
+        fsSeqNo=4
+        in_vlan=0
+        in_priority=0
+        out_vlan=0
+        out_priority=0
+        meanSkip=1
+        samplePool=4
+        dropEvents=0
+        in_ifindex=1003
+        in_format=0
+        out_ifindex=1004
+        out_format=0
+        hdr_prot=1
+        pkt_len=110
+        stripped=4
+        hdr_len=106
+        hdr=50-54-00-00-00-05-50-54-00-00-00-07-08-00-45-00-00-5C-00-00-00-00-40-01-F9-4D-C0-A8-00-02-C0-A8-00-01-00-00-1B-FC-00-00-00-00-00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F-10-11-12-13-14-15-16-17-18-19-1A-1B-1C-1D-1E-1F-20-21-22-23-24-25-26-27-28-29-2A-2B-2C-2D-2E-2F-30-31-32-33-34-35-36-37-38-39-3A-3B-3C-3D-3E-3F
 HEADER
-       dgramSeqNo=1
-       ds=127.0.0.1>2:1000
-       fsSeqNo=5
-       in_vlan=0
-       in_priority=0
-       out_vlan=0
-       out_priority=0
-       meanSkip=1
-       samplePool=5
-       dropEvents=0
-       in_ifindex=1003
-       in_format=0
-       out_ifindex=1004
-       out_format=0
-       hdr_prot=1
-       pkt_len=58
-       stripped=4
-       hdr_len=54
-       hdr=50-54-00-00-00-05-50-54-00-00-00-07-86-DD-67-00-00-00-00-00-0A-80-FE-80-00-00-00-00-00-00-00-00-00-00-00-00-00-01-FE-80-00-00-00-00-00-00-00-00-00-00-00-00-00-02
+        dgramSeqNo=1
+        ds=127.0.0.1>2:1000
+        fsSeqNo=5
+        in_vlan=0
+        in_priority=0
+        out_vlan=0
+        out_priority=0
+        meanSkip=1
+        samplePool=5
+        dropEvents=0
+        in_ifindex=1003
+        in_format=0
+        out_ifindex=1004
+        out_format=0
+        hdr_prot=1
+        pkt_len=58
+        stripped=4
+        hdr_len=54
+        hdr=50-54-00-00-00-05-50-54-00-00-00-07-86-DD-67-00-00-00-00-00-0A-80-FE-80-00-00-00-00-00-00-00-00-00-00-00-00-00-01-FE-80-00-00-00-00-00-00-00-00-00-00-00-00-00-02
 ])
 
   AT_CHECK_UNQUOTED([[sort sflow.log | $EGREP 'ETHCOUNTERS|IFCOUNTERS|ERROR|PORTNAME|OPENFLOWPORT' | head -24 | sed 's/ /\
-       /g']], [0], [dnl
+        /g']], [0], [dnl
 ETHCOUNTERS
-       dot3StatsAlignmentErrors=4294967295
-       dot3StatsFCSErrors=4294967295
-       dot3StatsSingleCollisionFrames=4294967295
-       dot3StatsMultipleCollisionFrames=4294967295
-       dot3StatsSQETestErrors=4294967295
-       dot3StatsDeferredTransmissions=4294967295
-       dot3StatsLateCollisions=4294967295
-       dot3StatsExcessiveCollisions=4294967295
-       dot3StatsInternalMacTransmitErrors=4294967295
-       dot3StatsCarrierSenseErrors=4294967295
-       dot3StatsFrameTooLongs=4294967295
-       dot3StatsInternalMacReceiveErrors=4294967295
-       dot3StatsSymbolErrors=4294967295
+        dot3StatsAlignmentErrors=4294967295
+        dot3StatsFCSErrors=4294967295
+        dot3StatsSingleCollisionFrames=4294967295
+        dot3StatsMultipleCollisionFrames=4294967295
+        dot3StatsSQETestErrors=4294967295
+        dot3StatsDeferredTransmissions=4294967295
+        dot3StatsLateCollisions=4294967295
+        dot3StatsExcessiveCollisions=4294967295
+        dot3StatsInternalMacTransmitErrors=4294967295
+        dot3StatsCarrierSenseErrors=4294967295
+        dot3StatsFrameTooLongs=4294967295
+        dot3StatsInternalMacReceiveErrors=4294967295
+        dot3StatsSymbolErrors=4294967295
 ETHCOUNTERS
-       dot3StatsAlignmentErrors=4294967295
-       dot3StatsFCSErrors=4294967295
-       dot3StatsSingleCollisionFrames=4294967295
-       dot3StatsMultipleCollisionFrames=4294967295
-       dot3StatsSQETestErrors=4294967295
-       dot3StatsDeferredTransmissions=4294967295
-       dot3StatsLateCollisions=4294967295
-       dot3StatsExcessiveCollisions=4294967295
-       dot3StatsInternalMacTransmitErrors=4294967295
-       dot3StatsCarrierSenseErrors=4294967295
-       dot3StatsFrameTooLongs=4294967295
-       dot3StatsInternalMacReceiveErrors=4294967295
-       dot3StatsSymbolErrors=4294967295
+        dot3StatsAlignmentErrors=4294967295
+        dot3StatsFCSErrors=4294967295
+        dot3StatsSingleCollisionFrames=4294967295
+        dot3StatsMultipleCollisionFrames=4294967295
+        dot3StatsSQETestErrors=4294967295
+        dot3StatsDeferredTransmissions=4294967295
+        dot3StatsLateCollisions=4294967295
+        dot3StatsExcessiveCollisions=4294967295
+        dot3StatsInternalMacTransmitErrors=4294967295
+        dot3StatsCarrierSenseErrors=4294967295
+        dot3StatsFrameTooLongs=4294967295
+        dot3StatsInternalMacReceiveErrors=4294967295
+        dot3StatsSymbolErrors=4294967295
 ETHCOUNTERS
-       dot3StatsAlignmentErrors=4294967295
-       dot3StatsFCSErrors=4294967295
-       dot3StatsSingleCollisionFrames=4294967295
-       dot3StatsMultipleCollisionFrames=4294967295
-       dot3StatsSQETestErrors=4294967295
-       dot3StatsDeferredTransmissions=4294967295
-       dot3StatsLateCollisions=4294967295
-       dot3StatsExcessiveCollisions=4294967295
-       dot3StatsInternalMacTransmitErrors=4294967295
-       dot3StatsCarrierSenseErrors=4294967295
-       dot3StatsFrameTooLongs=4294967295
-       dot3StatsInternalMacReceiveErrors=4294967295
-       dot3StatsSymbolErrors=4294967295
+        dot3StatsAlignmentErrors=4294967295
+        dot3StatsFCSErrors=4294967295
+        dot3StatsSingleCollisionFrames=4294967295
+        dot3StatsMultipleCollisionFrames=4294967295
+        dot3StatsSQETestErrors=4294967295
+        dot3StatsDeferredTransmissions=4294967295
+        dot3StatsLateCollisions=4294967295
+        dot3StatsExcessiveCollisions=4294967295
+        dot3StatsInternalMacTransmitErrors=4294967295
+        dot3StatsCarrierSenseErrors=4294967295
+        dot3StatsFrameTooLongs=4294967295
+        dot3StatsInternalMacReceiveErrors=4294967295
+        dot3StatsSymbolErrors=4294967295
 ETHCOUNTERS
-       dot3StatsAlignmentErrors=4294967295
-       dot3StatsFCSErrors=4294967295
-       dot3StatsSingleCollisionFrames=4294967295
-       dot3StatsMultipleCollisionFrames=4294967295
-       dot3StatsSQETestErrors=4294967295
-       dot3StatsDeferredTransmissions=4294967295
-       dot3StatsLateCollisions=4294967295
-       dot3StatsExcessiveCollisions=4294967295
-       dot3StatsInternalMacTransmitErrors=4294967295
-       dot3StatsCarrierSenseErrors=4294967295
-       dot3StatsFrameTooLongs=4294967295
-       dot3StatsInternalMacReceiveErrors=4294967295
-       dot3StatsSymbolErrors=4294967295
+        dot3StatsAlignmentErrors=4294967295
+        dot3StatsFCSErrors=4294967295
+        dot3StatsSingleCollisionFrames=4294967295
+        dot3StatsMultipleCollisionFrames=4294967295
+        dot3StatsSQETestErrors=4294967295
+        dot3StatsDeferredTransmissions=4294967295
+        dot3StatsLateCollisions=4294967295
+        dot3StatsExcessiveCollisions=4294967295
+        dot3StatsInternalMacTransmitErrors=4294967295
+        dot3StatsCarrierSenseErrors=4294967295
+        dot3StatsFrameTooLongs=4294967295
+        dot3StatsInternalMacReceiveErrors=4294967295
+        dot3StatsSymbolErrors=4294967295
 ETHCOUNTERS
-       dot3StatsAlignmentErrors=4294967295
-       dot3StatsFCSErrors=4294967295
-       dot3StatsSingleCollisionFrames=4294967295
-       dot3StatsMultipleCollisionFrames=4294967295
-       dot3StatsSQETestErrors=4294967295
-       dot3StatsDeferredTransmissions=4294967295
-       dot3StatsLateCollisions=4294967295
-       dot3StatsExcessiveCollisions=4294967295
-       dot3StatsInternalMacTransmitErrors=4294967295
-       dot3StatsCarrierSenseErrors=4294967295
-       dot3StatsFrameTooLongs=4294967295
-       dot3StatsInternalMacReceiveErrors=4294967295
-       dot3StatsSymbolErrors=4294967295
+        dot3StatsAlignmentErrors=4294967295
+        dot3StatsFCSErrors=4294967295
+        dot3StatsSingleCollisionFrames=4294967295
+        dot3StatsMultipleCollisionFrames=4294967295
+        dot3StatsSQETestErrors=4294967295
+        dot3StatsDeferredTransmissions=4294967295
+        dot3StatsLateCollisions=4294967295
+        dot3StatsExcessiveCollisions=4294967295
+        dot3StatsInternalMacTransmitErrors=4294967295
+        dot3StatsCarrierSenseErrors=4294967295
+        dot3StatsFrameTooLongs=4294967295
+        dot3StatsInternalMacReceiveErrors=4294967295
+        dot3StatsSymbolErrors=4294967295
 ETHCOUNTERS
-       dot3StatsAlignmentErrors=4294967295
-       dot3StatsFCSErrors=4294967295
-       dot3StatsSingleCollisionFrames=4294967295
-       dot3StatsMultipleCollisionFrames=4294967295
-       dot3StatsSQETestErrors=4294967295
-       dot3StatsDeferredTransmissions=4294967295
-       dot3StatsLateCollisions=4294967295
-       dot3StatsExcessiveCollisions=4294967295
-       dot3StatsInternalMacTransmitErrors=4294967295
-       dot3StatsCarrierSenseErrors=4294967295
-       dot3StatsFrameTooLongs=4294967295
-       dot3StatsInternalMacReceiveErrors=4294967295
-       dot3StatsSymbolErrors=4294967295
+        dot3StatsAlignmentErrors=4294967295
+        dot3StatsFCSErrors=4294967295
+        dot3StatsSingleCollisionFrames=4294967295
+        dot3StatsMultipleCollisionFrames=4294967295
+        dot3StatsSQETestErrors=4294967295
+        dot3StatsDeferredTransmissions=4294967295
+        dot3StatsLateCollisions=4294967295
+        dot3StatsExcessiveCollisions=4294967295
+        dot3StatsInternalMacTransmitErrors=4294967295
+        dot3StatsCarrierSenseErrors=4294967295
+        dot3StatsFrameTooLongs=4294967295
+        dot3StatsInternalMacReceiveErrors=4294967295
+        dot3StatsSymbolErrors=4294967295
 IFCOUNTERS
-       dgramSeqNo=1
-       ds=127.0.0.1>0:1003
-       csSeqNo=1
-       ifindex=1003
-       type=6
-       ifspeed=100000000
-       direction=0
-       status=0
-       in_octets=202
-       in_unicasts=3
-       in_multicasts=4294967295
-       in_broadcasts=4294967295
-       in_discards=4294967295
-       in_errors=4294967295
-       in_unknownprotos=4294967295
-       out_octets=148
-       out_unicasts=2
-       out_multicasts=4294967295
-       out_broadcasts=4294967295
-       out_discards=4294967295
-       out_errors=4294967295
-       promiscuous=0
+        dgramSeqNo=1
+        ds=127.0.0.1>0:1003
+        csSeqNo=1
+        ifindex=1003
+        type=6
+        ifspeed=100000000
+        direction=0
+        status=0
+        in_octets=202
+        in_unicasts=3
+        in_multicasts=4294967295
+        in_broadcasts=4294967295
+        in_discards=4294967295
+        in_errors=4294967295
+        in_unknownprotos=4294967295
+        out_octets=148
+        out_unicasts=2
+        out_multicasts=4294967295
+        out_broadcasts=4294967295
+        out_discards=4294967295
+        out_errors=4294967295
+        promiscuous=0
 IFCOUNTERS
-       dgramSeqNo=1
-       ds=127.0.0.1>0:1004
-       csSeqNo=1
-       ifindex=1004
-       type=6
-       ifspeed=100000000
-       direction=0
-       status=0
-       in_octets=148
-       in_unicasts=2
-       in_multicasts=4294967295
-       in_broadcasts=4294967295
-       in_discards=4294967295
-       in_errors=4294967295
-       in_unknownprotos=4294967295
-       out_octets=202
-       out_unicasts=3
-       out_multicasts=4294967295
-       out_broadcasts=4294967295
-       out_discards=4294967295
-       out_errors=4294967295
-       promiscuous=0
+        dgramSeqNo=1
+        ds=127.0.0.1>0:1004
+        csSeqNo=1
+        ifindex=1004
+        type=6
+        ifspeed=100000000
+        direction=0
+        status=0
+        in_octets=148
+        in_unicasts=2
+        in_multicasts=4294967295
+        in_broadcasts=4294967295
+        in_discards=4294967295
+        in_errors=4294967295
+        in_unknownprotos=4294967295
+        out_octets=202
+        out_unicasts=3
+        out_multicasts=4294967295
+        out_broadcasts=4294967295
+        out_discards=4294967295
+        out_errors=4294967295
+        promiscuous=0
 IFCOUNTERS
-       dgramSeqNo=2
-       ds=127.0.0.1>0:1002
-       csSeqNo=1
-       ifindex=1002
-       type=6
-       ifspeed=100000000
-       direction=0
-       status=0
-       in_octets=0
-       in_unicasts=0
-       in_multicasts=4294967295
-       in_broadcasts=4294967295
-       in_discards=4294967295
-       in_errors=4294967295
-       in_unknownprotos=4294967295
-       out_octets=84
-       out_unicasts=2
-       out_multicasts=4294967295
-       out_broadcasts=4294967295
-       out_discards=4294967295
-       out_errors=4294967295
-       promiscuous=0
+        dgramSeqNo=2
+        ds=127.0.0.1>0:1002
+        csSeqNo=1
+        ifindex=1002
+        type=6
+        ifspeed=100000000
+        direction=0
+        status=0
+        in_octets=0
+        in_unicasts=0
+        in_multicasts=4294967295
+        in_broadcasts=4294967295
+        in_discards=4294967295
+        in_errors=4294967295
+        in_unknownprotos=4294967295
+        out_octets=84
+        out_unicasts=2
+        out_multicasts=4294967295
+        out_broadcasts=4294967295
+        out_discards=4294967295
+        out_errors=4294967295
+        promiscuous=0
 IFCOUNTERS
-       dgramSeqNo=3
-       ds=127.0.0.1>0:1002
-       csSeqNo=2
-       ifindex=1002
-       type=6
-       ifspeed=100000000
-       direction=0
-       status=0
-       in_octets=0
-       in_unicasts=0
-       in_multicasts=4294967295
-       in_broadcasts=4294967295
-       in_discards=4294967295
-       in_errors=4294967295
-       in_unknownprotos=4294967295
-       out_octets=84
-       out_unicasts=2
-       out_multicasts=4294967295
-       out_broadcasts=4294967295
-       out_discards=4294967295
-       out_errors=4294967295
-       promiscuous=0
+        dgramSeqNo=3
+        ds=127.0.0.1>0:1002
+        csSeqNo=2
+        ifindex=1002
+        type=6
+        ifspeed=100000000
+        direction=0
+        status=0
+        in_octets=0
+        in_unicasts=0
+        in_multicasts=4294967295
+        in_broadcasts=4294967295
+        in_discards=4294967295
+        in_errors=4294967295
+        in_unknownprotos=4294967295
+        out_octets=84
+        out_unicasts=2
+        out_multicasts=4294967295
+        out_broadcasts=4294967295
+        out_discards=4294967295
+        out_errors=4294967295
+        promiscuous=0
 IFCOUNTERS
-       dgramSeqNo=3
-       ds=127.0.0.1>0:1003
-       csSeqNo=2
-       ifindex=1003
-       type=6
-       ifspeed=100000000
-       direction=0
-       status=0
-       in_octets=202
-       in_unicasts=3
-       in_multicasts=4294967295
-       in_broadcasts=4294967295
-       in_discards=4294967295
-       in_errors=4294967295
-       in_unknownprotos=4294967295
-       out_octets=148
-       out_unicasts=2
-       out_multicasts=4294967295
-       out_broadcasts=4294967295
-       out_discards=4294967295
-       out_errors=4294967295
-       promiscuous=0
+        dgramSeqNo=3
+        ds=127.0.0.1>0:1003
+        csSeqNo=2
+        ifindex=1003
+        type=6
+        ifspeed=100000000
+        direction=0
+        status=0
+        in_octets=202
+        in_unicasts=3
+        in_multicasts=4294967295
+        in_broadcasts=4294967295
+        in_discards=4294967295
+        in_errors=4294967295
+        in_unknownprotos=4294967295
+        out_octets=148
+        out_unicasts=2
+        out_multicasts=4294967295
+        out_broadcasts=4294967295
+        out_discards=4294967295
+        out_errors=4294967295
+        promiscuous=0
 IFCOUNTERS
-       dgramSeqNo=3
-       ds=127.0.0.1>0:1004
-       csSeqNo=2
-       ifindex=1004
-       type=6
-       ifspeed=100000000
-       direction=0
-       status=0
-       in_octets=148
-       in_unicasts=2
-       in_multicasts=4294967295
-       in_broadcasts=4294967295
-       in_discards=4294967295
-       in_errors=4294967295
-       in_unknownprotos=4294967295
-       out_octets=202
-       out_unicasts=3
-       out_multicasts=4294967295
-       out_broadcasts=4294967295
-       out_discards=4294967295
-       out_errors=4294967295
-       promiscuous=0
+        dgramSeqNo=3
+        ds=127.0.0.1>0:1004
+        csSeqNo=2
+        ifindex=1004
+        type=6
+        ifspeed=100000000
+        direction=0
+        status=0
+        in_octets=148
+        in_unicasts=2
+        in_multicasts=4294967295
+        in_broadcasts=4294967295
+        in_discards=4294967295
+        in_errors=4294967295
+        in_unknownprotos=4294967295
+        out_octets=202
+        out_unicasts=3
+        out_multicasts=4294967295
+        out_broadcasts=4294967295
+        out_discards=4294967295
+        out_errors=4294967295
+        promiscuous=0
 OPENFLOWPORT
-       datapath_id=18364758544493064720
-       port_no=1
+        datapath_id=18364758544493064720
+        port_no=1
 OPENFLOWPORT
-       datapath_id=18364758544493064720
-       port_no=1
+        datapath_id=18364758544493064720
+        port_no=1
 OPENFLOWPORT
-       datapath_id=18364758544493064720
-       port_no=2
+        datapath_id=18364758544493064720
+        port_no=2
 OPENFLOWPORT
-       datapath_id=18364758544493064720
-       port_no=2
+        datapath_id=18364758544493064720
+        port_no=2
 OPENFLOWPORT
-       datapath_id=18364758544493064720
-       port_no=65534
+        datapath_id=18364758544493064720
+        port_no=65534
 OPENFLOWPORT
-       datapath_id=18364758544493064720
-       port_no=65534
+        datapath_id=18364758544493064720
+        port_no=65534
 PORTNAME
-       portName=br0
+        portName=br0
 PORTNAME
-       portName=br0
+        portName=br0
 PORTNAME
-       portName=p1
+        portName=p1
 PORTNAME
-       portName=p1
+        portName=p1
 PORTNAME
-       portName=p2
+        portName=p2
 PORTNAME
-       portName=p2
+        portName=p2
 ])])
 
 AT_SETUP([ofproto-dpif - basic truncate action])
@@ -6489,19 +6489,19 @@ dnl Test sFlow LAG structures
 AT_SETUP([ofproto-dpif - sFlow packet sampling - LACP structures])
 AT_SKIP_IF([test "$IS_WIN32" = "yes"])
 OVS_VSWITCHD_START([dnl
-                   add-bond br0 bond p1 p2 --                          \
-                   set Port bond lacp=active bond-mode=active-backup   \
-                   other_config:lacp-time="fast"                       \
-                   other_config:lacp-system-id=11:22:33:44:55:66       \
-                   other_config:lacp-system-priority=54321 --          \
-                   set Interface p1 type=dummy                         \
-                   other_config:lacp-port-id=11                        \
-                   other_config:lacp-port-priority=111                 \
-                   other_config:lacp-aggregation-key=3333 --           \
-                   set Interface p2 type=dummy                         \
-                   other_config:lacp-port-id=22                        \
-                   other_config:lacp-port-priority=222                 \
-                   other_config:lacp-aggregation-key=3333 ])
+                    add-bond br0 bond p1 p2 --                          \
+                    set Port bond lacp=active bond-mode=active-backup   \
+                    other_config:lacp-time="fast"                       \
+                    other_config:lacp-system-id=11:22:33:44:55:66       \
+                    other_config:lacp-system-priority=54321 --          \
+                    set Interface p1 type=dummy                         \
+                    other_config:lacp-port-id=11                        \
+                    other_config:lacp-port-priority=111                 \
+                    other_config:lacp-aggregation-key=3333 --           \
+                    set Interface p2 type=dummy                         \
+                    other_config:lacp-port-id=22                        \
+                    other_config:lacp-port-priority=222                 \
+                    other_config:lacp-aggregation-key=3333 ])
 
 on_exit 'kill `cat test-sflow.pid`'
 AT_CHECK([ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log], [0], [], [ignore])
@@ -6511,9 +6511,9 @@ PARSE_LISTENING_PORT([test-sflow.log], [SFLOW_PORT])
 ovs-appctl time/stop
 
 ovs-vsctl \
-      set Interface p1 options:ifindex=1003 --                 \
-      set Bridge br0 sflow=@sf --                              \
-      --id=@sf create sflow targets=\"127.0.0.1:$SFLOW_PORT\"  \
+      set Interface p1 options:ifindex=1003 --                  \
+      set Bridge br0 sflow=@sf --                               \
+      --id=@sf create sflow targets=\"127.0.0.1:$SFLOW_PORT\"   \
       header=128 sampling=1 polling=1 agent=127.0.0.1
 
 dnl sleep long enough to get the sFlow datagram flushed out (may be delayed for up to 1 second)
@@ -6522,23 +6522,23 @@ AT_CHECK([ovs-appctl revalidator/purge], [0])
 OVS_VSWITCHD_STOP
 OVS_APP_EXIT_AND_WAIT([test-sflow])
 AT_CHECK([[sort sflow.log | $EGREP 'LACPCOUNTERS|ERROR' | head -n 1 | sed 's/ /\
-       /g']], [0], [dnl
+        /g']], [0], [dnl
 LACPCOUNTERS
-       sysID=11:22:33:44:55:66
-       partnerID=00:00:00:00:00:00
-       aggID=3333
-       actorAdmin=0x7
-       actorOper=0xbf
-       partnerAdmin=0x0
-       partnerOper=0x2
-       LACPDUsRx=0
-       markerPDUsRx=4294967295
-       markerRespPDUsRx=4294967295
-       unknownRx=4294967295
-       illegalRx=0
-       LACPDUsTx=1
-       markerPDUsTx=4294967295
-       markerRespPDUsTx=4294967295
+        sysID=11:22:33:44:55:66
+        partnerID=00:00:00:00:00:00
+        aggID=3333
+        actorAdmin=0x7
+        actorOper=0xbf
+        partnerAdmin=0x0
+        partnerOper=0x2
+        LACPDUsRx=0
+        markerPDUsRx=4294967295
+        markerRespPDUsRx=4294967295
+        unknownRx=4294967295
+        illegalRx=0
+        LACPDUsTx=1
+        markerPDUsTx=4294967295
+        markerRespPDUsTx=4294967295
 ])
 
 AT_CLEANUP
@@ -6555,7 +6555,7 @@ ovs-appctl time/stop
 
 OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
 AT_CHECK([ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre \
-                   options:remote_ip=1.1.1.1 options:key=456 ofport_request=3])
+                    options:remote_ip=1.1.1.1 options:key=456 ofport_request=3])
 AT_CHECK([ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy ofport_request=4])
 
 AT_CHECK([ovs-ofctl add-flow br0 action=3])
@@ -6577,36 +6577,36 @@ done
 OVS_APP_EXIT_AND_WAIT([test-sflow])
 
 AT_CHECK_UNQUOTED([[sort sflow.log | $EGREP 'HEADER|ERROR' | sed 's/ /\
-       /g']], [0], [dnl
+        /g']], [0], [dnl
 HEADER
-       dgramSeqNo=1
-       ds=127.0.0.1>2:1000
-       fsSeqNo=1
-       tunnel4_out_length=0
-       tunnel4_out_protocol=47
-       tunnel4_out_src=0.0.0.0
-       tunnel4_out_dst=1.1.1.1
-       tunnel4_out_src_port=0
-       tunnel4_out_dst_port=0
-       tunnel4_out_tcp_flags=0
-       tunnel4_out_tos=1
-       tunnel_out_vni=456
-       in_vlan=0
-       in_priority=0
-       out_vlan=0
-       out_priority=0
-       meanSkip=1
-       samplePool=1
-       dropEvents=0
-       in_ifindex=0
-       in_format=0
-       out_ifindex=1
-       out_format=2
-       hdr_prot=1
-       pkt_len=110
-       stripped=4
-       hdr_len=106
-       hdr=50-54-00-00-00-0A-50-54-00-00-00-09-08-00-45-01-00-5C-00-00-00-00-80-01-12-8A-0A-0A-0A-02-0A-0A-0A-01-08-00-13-FC-00-00-00-00-00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F-10-11-12-13-14-15-16-17-18-19-1A-1B-1C-1D-1E-1F-20-21-22-23-24-25-26-27-28-29-2A-2B-2C-2D-2E-2F-30-31-32-33-34-35-36-37-38-39-3A-3B-3C-3D-3E-3F
+        dgramSeqNo=1
+        ds=127.0.0.1>2:1000
+        fsSeqNo=1
+        tunnel4_out_length=0
+        tunnel4_out_protocol=47
+        tunnel4_out_src=0.0.0.0
+        tunnel4_out_dst=1.1.1.1
+        tunnel4_out_src_port=0
+        tunnel4_out_dst_port=0
+        tunnel4_out_tcp_flags=0
+        tunnel4_out_tos=1
+        tunnel_out_vni=456
+        in_vlan=0
+        in_priority=0
+        out_vlan=0
+        out_priority=0
+        meanSkip=1
+        samplePool=1
+        dropEvents=0
+        in_ifindex=0
+        in_format=0
+        out_ifindex=1
+        out_format=2
+        hdr_prot=1
+        pkt_len=110
+        stripped=4
+        hdr_len=106
+        hdr=50-54-00-00-00-0A-50-54-00-00-00-09-08-00-45-01-00-5C-00-00-00-00-80-01-12-8A-0A-0A-0A-02-0A-0A-0A-01-08-00-13-FC-00-00-00-00-00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F-10-11-12-13-14-15-16-17-18-19-1A-1B-1C-1D-1E-1F-20-21-22-23-24-25-26-27-28-29-2A-2B-2C-2D-2E-2F-30-31-32-33-34-35-36-37-38-39-3A-3B-3C-3D-3E-3F
 ])
 
 OVS_VSWITCHD_STOP
@@ -6679,36 +6679,36 @@ done
 OVS_APP_EXIT_AND_WAIT([test-sflow])
 
 AT_CHECK_UNQUOTED([[sort sflow.log | $EGREP 'HEADER|ERROR' | sed 's/ /\
-       /g']], [0], [dnl
+        /g']], [0], [dnl
 HEADER
-       dgramSeqNo=1
-       ds=127.0.0.1>2:1000
-       fsSeqNo=1
-       tunnel4_out_length=0
-       tunnel4_out_protocol=47
-       tunnel4_out_src=1.1.2.88
-       tunnel4_out_dst=1.1.2.92
-       tunnel4_out_src_port=0
-       tunnel4_out_dst_port=0
-       tunnel4_out_tcp_flags=0
-       tunnel4_out_tos=0
-       tunnel_out_vni=456
-       in_vlan=0
-       in_priority=0
-       out_vlan=0
-       out_priority=0
-       meanSkip=1
-       samplePool=1
-       dropEvents=0
-       in_ifindex=2011
-       in_format=0
-       out_ifindex=1
-       out_format=2
-       hdr_prot=1
-       pkt_len=110
-       stripped=4
-       hdr_len=106
-       hdr=50-54-00-00-00-0A-50-54-00-00-00-05-08-00-45-00-00-5C-00-00-00-00-80-01-B6-4D-C0-A8-01-01-C0-A8-02-02-08-00-13-FC-00-00-00-00-00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F-10-11-12-13-14-15-16-17-18-19-1A-1B-1C-1D-1E-1F-20-21-22-23-24-25-26-27-28-29-2A-2B-2C-2D-2E-2F-30-31-32-33-34-35-36-37-38-39-3A-3B-3C-3D-3E-3F
+        dgramSeqNo=1
+        ds=127.0.0.1>2:1000
+        fsSeqNo=1
+        tunnel4_out_length=0
+        tunnel4_out_protocol=47
+        tunnel4_out_src=1.1.2.88
+        tunnel4_out_dst=1.1.2.92
+        tunnel4_out_src_port=0
+        tunnel4_out_dst_port=0
+        tunnel4_out_tcp_flags=0
+        tunnel4_out_tos=0
+        tunnel_out_vni=456
+        in_vlan=0
+        in_priority=0
+        out_vlan=0
+        out_priority=0
+        meanSkip=1
+        samplePool=1
+        dropEvents=0
+        in_ifindex=2011
+        in_format=0
+        out_ifindex=1
+        out_format=2
+        hdr_prot=1
+        pkt_len=110
+        stripped=4
+        hdr_len=106
+        hdr=50-54-00-00-00-0A-50-54-00-00-00-05-08-00-45-00-00-5C-00-00-00-00-80-01-B6-4D-C0-A8-01-01-C0-A8-02-02-08-00-13-FC-00-00-00-00-00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F-10-11-12-13-14-15-16-17-18-19-1A-1B-1C-1D-1E-1F-20-21-22-23-24-25-26-27-28-29-2A-2B-2C-2D-2E-2F-30-31-32-33-34-35-36-37-38-39-3A-3B-3C-3D-3E-3F
 ])
 
 OVS_VSWITCHD_STOP
@@ -6748,59 +6748,59 @@ done
 OVS_APP_EXIT_AND_WAIT([test-sflow])
 
 AT_CHECK_UNQUOTED([[sort sflow.log | $EGREP 'HEADER|ERROR' | sed 's/ /\
-       /g']], [0], [dnl
+        /g']], [0], [dnl
 HEADER
-       dgramSeqNo=1
-       ds=127.0.0.1>2:1000
-       fsSeqNo=1
-       mpls_label_0=789
-       mpls_tc_0=4
-       mpls_ttl_0=32
-       mpls_bos_0=0
-       mpls_label_1=11
-       mpls_tc_1=3
-       mpls_ttl_1=64
-       mpls_bos_1=1
-       in_vlan=0
-       in_priority=0
-       out_vlan=0
-       out_priority=0
-       meanSkip=1
-       samplePool=1
-       dropEvents=0
-       in_ifindex=0
-       in_format=0
-       out_ifindex=1
-       out_format=2
-       hdr_prot=1
-       pkt_len=22
-       stripped=4
-       hdr_len=18
-       hdr=50-54-00-00-00-0A-50-54-00-00-00-09-88-47-00-00-B7-40
+        dgramSeqNo=1
+        ds=127.0.0.1>2:1000
+        fsSeqNo=1
+        mpls_label_0=789
+        mpls_tc_0=4
+        mpls_ttl_0=32
+        mpls_bos_0=0
+        mpls_label_1=11
+        mpls_tc_1=3
+        mpls_ttl_1=64
+        mpls_bos_1=1
+        in_vlan=0
+        in_priority=0
+        out_vlan=0
+        out_priority=0
+        meanSkip=1
+        samplePool=1
+        dropEvents=0
+        in_ifindex=0
+        in_format=0
+        out_ifindex=1
+        out_format=2
+        hdr_prot=1
+        pkt_len=22
+        stripped=4
+        hdr_len=18
+        hdr=50-54-00-00-00-0A-50-54-00-00-00-09-88-47-00-00-B7-40
 HEADER
-       dgramSeqNo=1
-       ds=127.0.0.1>2:1000
-       fsSeqNo=2
-       mpls_label_0=789
-       mpls_tc_0=4
-       mpls_ttl_0=32
-       mpls_bos_0=1
-       in_vlan=0
-       in_priority=0
-       out_vlan=0
-       out_priority=0
-       meanSkip=1
-       samplePool=2
-       dropEvents=0
-       in_ifindex=0
-       in_format=0
-       out_ifindex=1
-       out_format=2
-       hdr_prot=1
-       pkt_len=38
-       stripped=4
-       hdr_len=34
-       hdr=50-54-00-00-00-0A-50-54-00-00-00-09-08-00-45-00-00-14-00-00-00-00-00-00-BA-EB-00-00-00-00-00-00-00-00
+        dgramSeqNo=1
+        ds=127.0.0.1>2:1000
+        fsSeqNo=2
+        mpls_label_0=789
+        mpls_tc_0=4
+        mpls_ttl_0=32
+        mpls_bos_0=1
+        in_vlan=0
+        in_priority=0
+        out_vlan=0
+        out_priority=0
+        meanSkip=1
+        samplePool=2
+        dropEvents=0
+        in_ifindex=0
+        in_format=0
+        out_ifindex=1
+        out_format=2
+        hdr_prot=1
+        pkt_len=38
+        stripped=4
+        hdr_len=34
+        hdr=50-54-00-00-00-0A-50-54-00-00-00-09-08-00-45-00-00-14-00-00-00-00-00-00-BA-EB-00-00-00-00-00-00-00-00
 ])
 
 OVS_VSWITCHD_STOP
@@ -8855,7 +8855,7 @@ AT_CAPTURE_FILE([ofctl_monitor.log])
 AT_CHECK([ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log])
 
 for i in 1 2 3; do
-       AT_CHECK([ovs-ofctl -O OpenFlow13 packet-out br0 CONTROLLER controller '50540000000a5054000000091234'])
+        AT_CHECK([ovs-ofctl -O OpenFlow13 packet-out br0 CONTROLLER controller '50540000000a5054000000091234'])
 done
 
 OVS_APP_EXIT_AND_WAIT([ovs-ofctl])
@@ -8906,7 +8906,7 @@ AT_CAPTURE_FILE([ofctl_monitor.log])
 AT_CHECK([ovs-ofctl monitor br1 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log])
 
 for i in 1 2 3; do
-       AT_CHECK([ovs-ofctl -O OpenFlow13 packet-out br0 CONTROLLER output:1 '50540000000a5054000000091234'])
+        AT_CHECK([ovs-ofctl -O OpenFlow13 packet-out br0 CONTROLLER output:1 '50540000000a5054000000091234'])
 done
 
 OVS_APP_EXIT_AND_WAIT([ovs-ofctl])
index 8aa69ee9583467168e1764896aa59a45fb3148d0..7388a20a2236cc033677e276e1fcbf2178118081 100644 (file)
@@ -421,11 +421,11 @@ add_of_br () {
     local mac=aa:55:aa:55:00:0$brnum
     ovs-vsctl --timeout=20 \
         -- add-br $br \
-       -- set bridge $br datapath-type=dummy \
-                         fail-mode=secure \
-                         other-config:datapath-id=$dpid \
-                         other-config:hwaddr=$mac \
-                         protocols="[[OpenFlow10,OpenFlow11,OpenFlow12,\
+        -- set bridge $br datapath-type=dummy \
+                          fail-mode=secure \
+                          other-config:datapath-id=$dpid \
+                          other-config:hwaddr=$mac \
+                          protocols="[[OpenFlow10,OpenFlow11,OpenFlow12,\
                                        OpenFlow13,OpenFlow14,OpenFlow15,\
                                        OpenFlow16]]" \
         -- "$@"
@@ -497,7 +497,7 @@ m4_define([OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP],
 m4_define([WAIT_FOR_DUMMY_PORTS], \
   [m4_foreach([dummy_port], [$@],
       [  \
-        OVS_WAIT_WHILE([ovs-appctl netdev-dummy/conn-state dummy_port \
+         OVS_WAIT_WHILE([ovs-appctl netdev-dummy/conn-state dummy_port \
                   | grep 'unknown\|disconnected'])])])
 
 
index 26a6ff698deb26d488274da1bdcc1b2a13e8832f..9819bc577bdd45cb2bd721474d18c036017723d0 100644 (file)
@@ -3692,10 +3692,10 @@ OFPT_PORT_STATUS (OF1.4): MOD: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     if test X"$1" = X"OFPTR_VACANCY_UP"; then shift;
         ovs-vsctl -- --id=@t1 create Flow_Table flow-limit=10 -- set bridge br0 flow_tables:1=@t1
 
-       # Turn on vacancy events, then add flows until we're full.
-       # With initial vacancy of 100% and vacancy_up of 80%, so that
-       # vacancy >= vacancy_up, this enables VACANY_DOWN events, so
-       # we get a single such message when vacancy dips below 20%.
+        # Turn on vacancy events, then add flows until we're full.
+        # With initial vacancy of 100% and vacancy_up of 80%, so that
+        # vacancy >= vacancy_up, this enables VACANY_DOWN events, so
+        # we get a single such message when vacancy dips below 20%.
         ovs-ofctl -O OpenFlow14 mod-table br0 1 vacancy:20,80
         ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=1,actions=2
         ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=2,actions=2
@@ -3713,8 +3713,8 @@ table_desc:-
    eviction=off eviction_flags=OTHER|IMPORTANCE|LIFETIME
    vacancy=on vacancy_down=20% vacancy_up=80% vacancy=10%"
         # Then delete flows until we're empty.  Sending the
-       # VACANCY_DOWN message enabled VACANCY_UP events, so we get a
-       # single such message when vacancy rises above 80%.
+        # VACANCY_DOWN message enabled VACANCY_UP events, so we get a
+        # single such message when vacancy rises above 80%.
         ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=1
         ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=2
         ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=3
@@ -3732,11 +3732,11 @@ table_desc:-
    vacancy=on vacancy_down=20% vacancy_up=80% vacancy=90%"
 
         # Now approach vacancy from the other direction.  First
-       # disable vacancy events.  With initial vacancy of 70%, so
-       # that vacancy < vacancy_up, this enables VACANCY_UP events.
-       # That means that filling up the table generates no message,
-       # but deleting all the flows generates VACANCY_UP at the point
-       # vacancy rises above 80%.
+        # disable vacancy events.  With initial vacancy of 70%, so
+        # that vacancy < vacancy_up, this enables VACANCY_UP events.
+        # That means that filling up the table generates no message,
+        # but deleting all the flows generates VACANCY_UP at the point
+        # vacancy rises above 80%.
         ovs-ofctl -O OpenFlow14 mod-table br0 1 novacancy
         ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=1,actions=2
         ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=2,actions=2
@@ -4924,11 +4924,11 @@ add_of_ports br0 1 2 3
 
 set_and_check_specific_ofports () {
     ovs-vsctl set Interface p1 ofport_request="$1" -- \
-             set Interface p2 ofport_request="$2" -- \
-             set Interface p3 ofport_request="$3"
+              set Interface p2 ofport_request="$2" -- \
+              set Interface p3 ofport_request="$3"
     ofports=`ovs-vsctl get Interface p1 ofport -- \
-                      get Interface p2 ofport -- \
-                      get Interface p3 ofport`
+                       get Interface p2 ofport -- \
+                       get Interface p3 ofport`
     AT_CHECK_UNQUOTED([echo $ofports], [0], [$1 $2 $3
 ])
 }
@@ -4936,8 +4936,8 @@ for pre in      '1 2 3' '1 3 2' '2 1 3' '2 3 1' '3 1 2' '3 2 1'; do
     for post in '1 2 3' '1 3 2' '2 1 3' '2 3 1' '3 1 2' '3 2 1'; do
         echo -----------------------------------------------------------
         echo "Check changing port numbers from $pre to $post"
-       set_and_check_specific_ofports $pre
-       set_and_check_specific_ofports $post
+        set_and_check_specific_ofports $pre
+        set_and_check_specific_ofports $post
     done
 done
 
@@ -4945,7 +4945,7 @@ ovs-vsctl del-port p3
 
 set_and_check_poorly_specified_ofports () {
     ovs-vsctl set Interface p1 ofport_request="$1" -- \
-             set Interface p2 ofport_request="$2"
+              set Interface p2 ofport_request="$2"
     p1=`ovs-vsctl get Interface p1 ofport`
     p2=`ovs-vsctl get Interface p2 ofport`
     echo $p1 $p2
@@ -4953,8 +4953,8 @@ set_and_check_poorly_specified_ofports () {
     AT_CHECK([test "$p1" != "$p2"])
     if test "$1" = "$2" && test "$1" != '[[]]'; then
         # One port number must be the requested one.
-       AT_CHECK([test "$p1" = "$1" || test "$p2" = "$1"])
-       # The other port number must be different (already tested above).
+        AT_CHECK([test "$p1" = "$1" || test "$p2" = "$1"])
+        # The other port number must be different (already tested above).
     else
         AT_CHECK([test "$1" = '[[]]' || test "$p1" = "$1"])
         AT_CHECK([test "$2" = '[[]]' || test "$p2" = "$2"])
index f12c24c17bc4ba5b996a91c4ae8a430021a8824d..155150e027135925a39a6a362a2aaf8b6bbf9a41 100644 (file)
@@ -1873,10 +1873,10 @@ done
 # Prints the name of the logical switch that contains LSP.
 lsp_to_ls () {
     case $1 in dnl (
-       lp?[[12]]) echo ls1 ;; dnl (
-       lp?[[34]]) echo ls2 ;; dnl (
-       lp?5) echo ls3 ;; dnl (
-       *) AT_FAIL_IF([:]) ;;
+        lp?[[12]]) echo ls1 ;; dnl (
+        lp?[[34]]) echo ls2 ;; dnl (
+        lp?5) echo ls3 ;; dnl (
+        *) AT_FAIL_IF([:]) ;;
     esac
 }
 
@@ -1896,7 +1896,7 @@ for i in 1 2; do
                                   ofport-request=$i$j
 
         lsp_name=lp$i$j
-       ls_name=$(lsp_to_ls $lsp_name)
+        ls_name=$(lsp_to_ls $lsp_name)
 
         ovn-nbctl lsp-add $ls_name $lsp_name
         ovn-nbctl lsp-set-addresses $lsp_name f0:00:00:00:00:$i$j
@@ -6191,7 +6191,7 @@ get_final_nw_tos() {
     tos=$(echo "$flow" | sed -n 's/.*nw_tos=\([[0-9]]\{1,\}\).*/\1/p')
     case $tos in
         '') echo none ;;
-       *) echo $tos ;;
+        *) echo $tos ;;
     esac
 }
 
index f3ab3548a7feb3ed0d0c125ca2dc1d4d3ba97f27..677eea753275c0422251c171e23b60309a1eebcb 100644 (file)
@@ -227,12 +227,12 @@ uuidfilt () {
 # Not all shells support "exec -a NAME", so test for it.
 if (exec -a myname true); then
     run_as () {
-       (exec -a "$@")
+        (exec -a "$@")
     }
 else
     run_as () {
         shift
-       (exec "$@")
+        (exec "$@")
     }
 fi
 ]
index 72e845237783d6e310533b0276554e7bb58bd0cd..06597d7b59a9894f432601abe16f7dcc878238c3 100644 (file)
@@ -2934,13 +2934,13 @@ AT_SETUP([tcp flags - filtering])
 OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 \
                     -- add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2])
 AT_DATA([flows.txt], [dnl
-       in_port=1,tcp,tp_dst=80,tcp_flags=+syn-rst-ack-fin,action=2  # Allow outbound web traffic bare-SYN
-       in_port=1,tcp,tp_dst=80,tcp_flags=+ack,action=2  # Allow outbound web traffic with ACK bit
-       in_port=1,tcp,tp_dst=80,tcp_flags=+rst,action=2  # Allow outbound web traffic with RST bit
-       in_port=2,tcp,tp_src=80,tcp_flags=+ack,action=1  # Allow inbound web traffic with ACK bit
-       in_port=2,tcp,tp_src=80,tcp_flags=+rst,action=1  # Allow inbound web traffic with RST bit
-       priority=0,in_port=1,action=drop  # Default drop outbound
-       priority=0,in_port=2,action=drop  # Default drop inbound
+        in_port=1,tcp,tp_dst=80,tcp_flags=+syn-rst-ack-fin,action=2  # Allow outbound web traffic bare-SYN
+        in_port=1,tcp,tp_dst=80,tcp_flags=+ack,action=2  # Allow outbound web traffic with ACK bit
+        in_port=1,tcp,tp_dst=80,tcp_flags=+rst,action=2  # Allow outbound web traffic with RST bit
+        in_port=2,tcp,tp_src=80,tcp_flags=+ack,action=1  # Allow inbound web traffic with ACK bit
+        in_port=2,tcp,tp_src=80,tcp_flags=+rst,action=1  # Allow inbound web traffic with RST bit
+        priority=0,in_port=1,action=drop  # Default drop outbound
+        priority=0,in_port=2,action=drop  # Default drop inbound
 ])
 
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
index 843776257998d1fd358ea3aa522ddd3e9c2d93a5..6dacc2954bc6df5f3919732f284764e33197ff1a 100644 (file)
@@ -3,8 +3,8 @@ AT_BANNER([ovs-router])
 AT_SETUP([appctl - route/add with gateway])
 AT_KEYWORDS([ovs_router])
 OVS_VSWITCHD_START([add-port br0 p2 -- set Interface p2 type=gre \
-                       options:local_ip=2.2.2.2 options:remote_ip=1.1.1.1 \
-                       -- add-port br0 p1  -- set interface p1 type=dummy])
+                        options:local_ip=2.2.2.2 options:remote_ip=1.1.1.1 \
+                        -- add-port br0 p1  -- set interface p1 type=dummy])
 AT_CHECK([ovs-appctl netdev-dummy/ip4addr br0 2.2.2.2/24], [0], [OK
 ])
 AT_CHECK([ovs-appctl ovs/route/add 1.1.1.0/24 br0 2.2.2.10], [0], [OK
index 467175f1a7eb4a2459aec31d1836b5ad0a68a18c..8d777a0275a12dd15afd3b4dadb325c427459fcc 100644 (file)
@@ -57,8 +57,8 @@ AT_CHECK(
       ["ordinals",
        {"op": "update",
         "table": "ordinals",
-       "where": [],
-       "row": {"name": ""}}]']],
+        "where": [],
+        "row": {"name": ""}}]']],
   [0],
   [[[{"count":6}]
 ]])
@@ -138,10 +138,10 @@ dnl Use "query" for some of them, which won't have any effect.
 AT_CHECK(
   [[for txn in 'transact zero 0' \
                'query one 1' \
-              'transact two 2' \
-              'query three 3' \
-              'transact four 4' \
-              'query five 5'
+               'transact two 2' \
+               'query three 3' \
+               'transact four 4' \
+               'query five 5'
     do
       set -- $txn
       ovsdb-client $1 '
index b23adc6a52e0ad12b3a4e5f06564b77292459311..1c4149155dda94421cbf6171e6c2ae4153c32c0a 100644 (file)
@@ -15,10 +15,10 @@ ovsdb_check_cluster () {
 
     on_exit 'kill `cat *.pid`'
     for i in `seq $n`; do
-       AT_CHECK([ovsdb-server -vraft -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s$i.log --pidfile=s$i.pid --unixctl=s$i --remote=punix:s$i.ovsdb s$i.db])
+        AT_CHECK([ovsdb-server -vraft -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s$i.log --pidfile=s$i.pid --unixctl=s$i --remote=punix:s$i.ovsdb s$i.db])
     done
     for i in `seq $n`; do
-       AT_CHECK([ovsdb-client --timeout=30 wait unix:s$i.ovsdb $schema connected])
+        AT_CHECK([ovsdb-client --timeout=30 wait unix:s$i.ovsdb $schema connected])
     done
 
     for txn
@@ -28,7 +28,7 @@ ovsdb_check_cluster () {
     done
     AT_CHECK_UNQUOTED([uuidfilt output], [0], [$output])
     for i in `seq $n`; do
-       OVS_APP_EXIT_AND_WAIT_BY_TARGET([`pwd`/s$i], [s$i.pid])
+        OVS_APP_EXIT_AND_WAIT_BY_TARGET([`pwd`/s$i], [s$i.pid])
     done
 
     AT_CHECK([ovsdb-tool check-cluster s*.db])
@@ -67,8 +67,8 @@ AT_BANNER([OVSDB - cluster tests])
 # Torture test.
 OVS_START_SHELL_HELPERS
 ovsdb_torture_test () {
-    local n=$1                 # Number of cluster members
-    local victim=$2            # Cluster member to kill or remove
+    local n=$1                  # Number of cluster members
+    local victim=$2             # Cluster member to kill or remove
     local variant=$3            # 'kill' and restart or 'remove' and add
     cp $top_srcdir/ovn/ovn-sb.ovsschema schema
     schema=`ovsdb-tool schema-name schema`
@@ -78,44 +78,44 @@ ovsdb|WARN|schema: changed 2 columns in 'OVN_Southbound' database from ephemeral
 
     join_cluster() {
         local i=$1
-       others=
-       for j in `seq 1 $n`; do
-           if test $i != $j; then
-               others="$others unix:s$j.raft"
+        others=
+        for j in `seq 1 $n`; do
+            if test $i != $j; then
+                others="$others unix:s$j.raft"
             fi
-       done
-       AT_CHECK([ovsdb-tool join-cluster s$i.db $schema unix:s$i.raft $others])
+        done
+        AT_CHECK([ovsdb-tool join-cluster s$i.db $schema unix:s$i.raft $others])
     }
 
     start_server() {
         local i=$1
-       printf "\ns$i: starting\n"
-       AT_CHECK([ovsdb-server -vjsonrpc -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s$i.log --pidfile=s$i.pid --unixctl=s$i --remote=punix:s$i.ovsdb s$i.db])
+        printf "\ns$i: starting\n"
+        AT_CHECK([ovsdb-server -vjsonrpc -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s$i.log --pidfile=s$i.pid --unixctl=s$i --remote=punix:s$i.ovsdb s$i.db])
     }
     stop_server() {
         local i=$1
-       printf "\ns$i: stopping\n"
+        printf "\ns$i: stopping\n"
         OVS_APP_EXIT_AND_WAIT_BY_TARGET([`pwd`/s$i], [s$i.pid])
     }
     connect_server() {
         local i=$1
-       printf "\ns$i: waiting to connect to storage\n"
-       AT_CHECK([ovsdb-client --timeout=30 -vfile -vsyslog:off -vvlog:off --log-file=connect$i.log wait unix:s$i.ovsdb $schema connected])
+        printf "\ns$i: waiting to connect to storage\n"
+        AT_CHECK([ovsdb-client --timeout=30 -vfile -vsyslog:off -vvlog:off --log-file=connect$i.log wait unix:s$i.ovsdb $schema connected])
     }
     remove_server() {
         local i=$1
-       printf "\ns$i: removing from cluster\n"
-       AT_CHECK([ovs-appctl --timeout=30 -t "`pwd`"/s$i cluster/leave OVN_Southbound])
-       printf "\ns$i: waiting for removal to complete\n"
-       AT_CHECK([ovsdb-client --timeout=30 -vfile -vsyslog:off -vvlog:off --log-file=remove$i.log wait unix:s$i.ovsdb $schema removed])
-       stop_server $victim
+        printf "\ns$i: removing from cluster\n"
+        AT_CHECK([ovs-appctl --timeout=30 -t "`pwd`"/s$i cluster/leave OVN_Southbound])
+        printf "\ns$i: waiting for removal to complete\n"
+        AT_CHECK([ovsdb-client --timeout=30 -vfile -vsyslog:off -vvlog:off --log-file=remove$i.log wait unix:s$i.ovsdb $schema removed])
+        stop_server $victim
     }
     add_server() {
         local i=$1
-       rm s$i.db
+        rm s$i.db
         join_cluster $i
-       start_server $i
-       connect_server $i
+        start_server $i
+        connect_server $i
     }
 
     cid=`ovsdb-tool db-cid s1.db`
@@ -134,16 +134,16 @@ ovsdb|WARN|schema: changed 2 columns in 'OVN_Southbound' database from ephemeral
     n1=10 n2=5
     echo "starting $n1*$n2 ovn-sbctl processes..."
     for i in $(seq 0 $(expr $n1 - 1) ); do
-       (for j in $(seq $n2); do
+        (for j in $(seq $n2); do
              : > $i-$j.running
-            run_as "ovn-sbctl($i-$j)" ovn-sbctl "-vPATTERN:console:ovn-sbctl($i-$j)|%D{%H:%M:%S}|%05N|%c|%p|%m" --log-file=$i-$j.log -vfile -vsyslog:off -vtimeval:off --timeout=120 --no-leader-only add SB_Global . external_ids $i-$j=$i-$j
-            status=$?
-            if test $status != 0; then
-                echo "$i-$j exited with status $status" > $i-$j:$status
+             run_as "ovn-sbctl($i-$j)" ovn-sbctl "-vPATTERN:console:ovn-sbctl($i-$j)|%D{%H:%M:%S}|%05N|%c|%p|%m" --log-file=$i-$j.log -vfile -vsyslog:off -vtimeval:off --timeout=120 --no-leader-only add SB_Global . external_ids $i-$j=$i-$j
+             status=$?
+             if test $status != 0; then
+                 echo "$i-$j exited with status $status" > $i-$j:$status
              fi
              rm $i-$j.running
-        done
-        : > $i.done)&
+         done
+         : > $i.done)&
     done
     echo "...done"
     sleep 2
@@ -153,44 +153,44 @@ ovsdb|WARN|schema: changed 2 columns in 'OVN_Southbound' database from ephemeral
     i=0
     (while :; do echo; sleep 1; done) | while read; do
         printf "t=%2d s:" $i
-       done=0
+        done=0
         for j in $(seq 0 $(expr $n1 - 1)); do
-           if test -f $j.done; then
-               printf " $j"
-               done=$(expr $done + 1)
+            if test -f $j.done; then
+                printf " $j"
+                done=$(expr $done + 1)
             fi
-       done
-       printf '\n'
-       if test $done = $n1; then
-           break
+        done
+        printf '\n'
+        if test $done = $n1; then
+            break
         fi
 
         case $phase in # (
-       0)
+        0)
             if test $done -ge $(expr $n1 / 4); then
-               if test $variant = kill; then
-                   stop_server $victim
-               else
-                   remove_server $victim
-               fi
-               phase=1
-               next=$(expr $i + 2)
+                if test $variant = kill; then
+                    stop_server $victim
+                else
+                    remove_server $victim
+                fi
+                phase=1
+                next=$(expr $i + 2)
             fi
-           ;; # (
+            ;; # (
         1)
-           if test $i -ge $next; then
-               if test $variant = kill; then
-                   start_server $victim
-                   connect_server $victim
-               else
-                   add_server $victim
-               fi
-               phase=2
-           fi
-           ;;
-       esac
+            if test $i -ge $next; then
+                if test $variant = kill; then
+                    start_server $victim
+                    connect_server $victim
+                else
+                    add_server $victim
+                fi
+                phase=2
+            fi
+            ;;
+        esac
 
-       i=$(expr $i + 1)
+        i=$(expr $i + 1)
     done
     echo "...done"
     AT_CHECK([if test $phase != 2; then exit 77; fi])
@@ -203,9 +203,9 @@ ovsdb|WARN|schema: changed 2 columns in 'OVN_Southbound' database from ephemeral
     AT_CHECK([ovn-sbctl --timeout=30 --log-file=finalize.log -vtimeval:off -vfile -vsyslog:off --bare get SB_Global . external-ids | sed 's/, /\n/g; s/[[{}""]]//g;' | sort], [0], [expout])
 
     for i in `seq $n`; do
-       if test $i != $victim || test $phase != 1; then
-           stop_server $i
-       fi
+        if test $i != $victim || test $phase != 1; then
+            stop_server $i
+        fi
     done
 
     # We ignore stdout because non-fatal warnings get printed there.
index e7182c558affc0b60b3b3927d5050ef0b1bd110b..4b613e5f62bf838b6392807fa7969e9f30212fb0 100644 (file)
@@ -12,7 +12,7 @@ OVSDB_CHECK_POSITIVE([conditions on scalars],
         {"i": {"type": "integer"},
          "r": {"type": "real"},
          "b": {"type": "boolean"},
-        "s": {"type": "string"},
+         "s": {"type": "string"},
          "u": {"type": "uuid"}}}' \
     '[["i", "==", 0]]' \
     '[["i", "!=", 1]]' \
@@ -79,7 +79,7 @@ AT_CHECK([[test-ovsdb parse-conditions \
         {"i": {"type": "integer"},
          "r": {"type": "real"},
          "b": {"type": "boolean"},
-        "s": {"type": "string"},
+         "s": {"type": "string"},
          "u": {"type": "uuid"}}}' \
     '[["b", ">", true]]' \
     '[["b", ">=", false]]' \
@@ -115,7 +115,7 @@ OVSDB_CHECK_POSITIVE([conditions on sets],
         {"i": {"type": {"key": "integer", "min": 0, "max": "unlimited"}},
          "r": {"type": {"key": "real", "min": 0, "max": "unlimited"}},
          "b": {"type": {"key": "boolean", "min": 0, "max": "unlimited"}},
-        "s": {"type": {"key": "string", "min": 0, "max": "unlimited"}},
+         "s": {"type": {"key": "string", "min": 0, "max": "unlimited"}},
          "u": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}}}}' \
     '[["i", "==", ["set", []]]]' \
     '[["i", "!=", ["set", [1]]]]' \
index 9caa02aad845c3cfbfedf0cf8a2ec14baa7f29da..cff08b183378f773b9becd4e2cdad6fdefae5514 100644 (file)
@@ -844,7 +844,7 @@ AT_CHECK([test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl uni
        "table": "link1",
        "where": [],
        "row": {"k": ["uuid", "#0#"]}}]']],
-        [0], [stdout], [stderr])
+         [0], [stdout], [stderr])
 AT_CHECK([sort stdout | uuidfilt], [0],
     [[000: empty
 001: {"error":null,"result":[{"uuid":["uuid","<0>"]}]}
index 4577558dfcd40fea0d5a60ce0b13cc34c39577a1..00a244ba4adbcb070e3fad18043e7f0ca3035d95 100644 (file)
@@ -85,14 +85,14 @@ for option in '' --no-rename-open-files; do
     rm -f file
     AT_CHECK(
       [[test-ovsdb $option log-io file create \
-         'write:{"x":0}' \
-         'replace_start' \
-         'new-write:{"x":1}' \
-         'new-write:{"x":2}' \
-         'old-write:{"x":4}' \
-         'replace_commit' \
-         'read' \
-         'write:{"x":3}']], [0],
+          'write:{"x":0}' \
+          'replace_start' \
+          'new-write:{"x":1}' \
+          'new-write:{"x":2}' \
+          'old-write:{"x":4}' \
+          'replace_commit' \
+          'read' \
+          'write:{"x":3}']], [0],
       [[file: open successful
 file: write:{"x":0} successful
 file: replace_start successful
@@ -122,14 +122,14 @@ for option in '' --no-rename-open-files; do
     rm -f file
     AT_CHECK(
       [[test-ovsdb $option log-io file create \
-         'write:{"x":0}' \
-         'replace_start' \
-         'new-write:{"x":1}' \
-         'new-write:{"x":2}' \
-         'old-write:{"x":4}' \
-         'replace_abort' \
-         'read' \
-         'write:{"x":3}']], [0],
+          'write:{"x":0}' \
+          'replace_start' \
+          'new-write:{"x":1}' \
+          'new-write:{"x":2}' \
+          'old-write:{"x":4}' \
+          'replace_abort' \
+          'read' \
+          'write:{"x":3}']], [0],
       [[file: open successful
 file: write:{"x":0} successful
 file: replace_start successful
index c06dbb27231f3fb917237faa1444aaae6fb8076e..5458d422e24079c1cbbe2f6f25380082c5009fc5 100644 (file)
@@ -9,20 +9,20 @@ ovsdb_check_monitor () {
     $schema_func > schema
     AT_CHECK([ovsdb-tool create db schema], [0], [stdout], [ignore])
     while test "$1" != "--"; do
-       AT_CHECK([ovsdb-tool transact db "$1"], [0], [ignore], [ignore])
-       shift
+        AT_CHECK([ovsdb-tool transact db "$1"], [0], [ignore], [ignore])
+        shift
     done
     shift
     AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file db > ovsdb-server.stdout 2> ovsdb-server.stderr],
-            [0], [], [])
+             [0], [], [])
     on_exit 'kill `cat ovsdb-server.pid`'
     if test "$IS_WIN32" = "yes"; then
       AT_CHECK([ovsdb-client -vjsonrpc --pidfile --log-file -d json monitor --format=csv unix:socket $db $table $columns > output 2> ovsdb-client.stderr &],
-              [0], [ignore], [ignore])
+               [0], [ignore], [ignore])
       sleep 1
     else
       AT_CHECK([ovsdb-client -vjsonrpc --detach --pidfile --log-file -d json monitor --format=csv unix:socket $db $table $columns > output 2> ovsdb-client.stderr],
-            [0], [ignore], [ignore])
+             [0], [ignore], [ignore])
     fi
     on_exit 'kill `cat ovsdb-client.pid`'
     for txn in ${1+"$@"} '[["'$db'"]]'; do
@@ -92,7 +92,7 @@ m4_define([OVSDB_CHECK_MONITOR_COND],
    AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1])
    on_exit 'kill `cat ovsdb-server.pid`'
    AT_CHECK([ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket $4 '[$8]' $5 $9 > output],
-         [0], [ignore], [ignore])
+          [0], [ignore], [ignore])
    on_exit 'kill `cat ovsdb-client.pid`'
    for txn in m4_foreach([txn], [$6], ['txn' ]); do
      AT_CHECK([ovsdb-client transact unix:socket "$txn"], [0],
index fc898b56d92ac8f76d0b8667d3de7c392c3bff07..2981c5393c015e005cd9b8cb8c5f1e88ea53624b 100644 (file)
@@ -12,7 +12,7 @@ OVSDB_CHECK_POSITIVE([mutations on scalars],
         {"i": {"type": "integer"},
          "r": {"type": "real"},
          "b": {"type": "boolean"},
-        "s": {"type": "string"},
+         "s": {"type": "string"},
          "u": {"type": "uuid"}}}' \
     '[["i", "+=", 0]]' \
     '[["i", "-=", 1]]' \
@@ -41,7 +41,7 @@ AT_CHECK([[test-ovsdb parse-mutations \
         {"i": {"type": "integer"},
          "r": {"type": "real"},
          "b": {"type": "boolean"},
-        "s": {"type": "string"},
+         "s": {"type": "string"},
          "u": {"type": "uuid"}}}' \
     '[["i", "xxx", 1]]' \
     '[["i", "insert", 1]]' \
@@ -117,7 +117,7 @@ OVSDB_CHECK_POSITIVE([mutations on sets],
         {"i": {"type": {"key": "integer", "min": 0, "max": "unlimited"}},
          "r": {"type": {"key": "real", "min": 0, "max": "unlimited"}},
          "b": {"type": {"key": "boolean", "min": 0, "max": "unlimited"}},
-        "s": {"type": {"key": "string", "min": 0, "max": "unlimited"}},
+         "s": {"type": {"key": "string", "min": 0, "max": "unlimited"}},
          "u": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}}}}' \
     '[["i", "+=", 1]]' \
     '[["i", "-=", 2]]' \
index 2c2b648d80da23de5592813df5d5ff283aeccaee..0814fda2ab75336dea3b39dc9355d845c25dd028 100644 (file)
@@ -6,7 +6,7 @@ OVSDB_CHECK_POSITIVE([queries on scalars],
         {"i": {"type": "integer"},
          "r": {"type": "real"},
          "b": {"type": "boolean"},
-        "s": {"type": "string"},
+         "s": {"type": "string"},
          "u": {"type": "uuid"}}}' \
     '[{"i": 0,
        "r": 0.5,
@@ -354,7 +354,7 @@ OVSDB_CHECK_POSITIVE([UUID-distinct queries on scalars],
         {"i": {"type": "integer"},
          "r": {"type": "real"},
          "b": {"type": "boolean"},
-        "s": {"type": "string"},
+         "s": {"type": "string"},
          "u": {"type": "uuid"}}}' \
     '[{"i": 0,
        "r": 0.5,
@@ -447,7 +447,7 @@ OVSDB_CHECK_POSITIVE([Boolean-distinct queries on scalars],
         {"i": {"type": "integer"},
          "r": {"type": "real"},
          "b": {"type": "boolean"},
-        "s": {"type": "string"},
+         "s": {"type": "string"},
          "u": {"type": "uuid"}}}' \
     '[{"i": 0,
        "r": 0.5,
index 0b2ae77b1a41ec087ec808f698e9f637c387b644..891f9532943027e936448efa5ed69a0eb90fea9b 100644 (file)
@@ -116,7 +116,7 @@ OVSDB_CHECK_POSITIVE([row hashing (scalars)],
         {"i": {"type": "integer"},
          "r": {"type": "real"},
          "b": {"type": "boolean"},
-        "s": {"type": "string"},
+         "s": {"type": "string"},
          "u": {"type": "uuid"}}}' \
      '["null", {}]' \
      '["i1", {"i": 1}]' \
@@ -185,7 +185,7 @@ OVSDB_CHECK_POSITIVE([row hashing (sets)],
         {"i": {"type": {"key": "integer", "min": 0, "max": "unlimited"}},
          "r": {"type": {"key": "real", "min": 0, "max": "unlimited"}},
          "b": {"type": {"key": "boolean", "min": 0, "max": "unlimited"}},
-        "s": {"type": {"key": "string", "min": 0, "max": "unlimited"}},
+         "s": {"type": {"key": "string", "min": 0, "max": "unlimited"}},
          "u": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}}}}' \
     '["null0", {"i": ["set", []]}]' \
     '["i0", {"i": ["set", [0]]}]' \
@@ -241,7 +241,7 @@ OVSDB_CHECK_POSITIVE([row hashing (maps)],
                          "min": 0, "max": "unlimited"}},
          "bb": {"type": {"key": "boolean", "value": "boolean",
                          "min": 0, "max": "unlimited"}},
-        "ss": {"type": {"key": "string", "value": "string",
+         "ss": {"type": {"key": "string", "value": "string",
                          "min": 0, "max": "unlimited"}}}}' \
     '["null", {}]' \
     '["ii0", {"ii": ["map", [[0, 0]]]}]' \
index 9957ebdd4d35a965338d82eb574bf8e723e6119c..d606d718d08b8daae1919de282106fd7572914b5 100644 (file)
@@ -60,17 +60,17 @@ dnl Immutable weak references are forced to be mutable.
 OVSDB_CHECK_POSITIVE_CPY([schema with immutable weak references],
   [[parse-schema \
       '{"name": "mydb",
-       "version": "4.2.1",
-       "tables": {
-         "a": {
-           "columns": {
-             "x": {
-               "type": {
-                 "key": {
-                   "type": "uuid",
-                   "refTable": "a",
-                   "refType": "weak"}},
-               "mutable": false}}}}}']],
+        "version": "4.2.1",
+        "tables": {
+          "a": {
+            "columns": {
+              "x": {
+                "type": {
+                  "key": {
+                    "type": "uuid",
+                    "refTable": "a",
+                    "refType": "weak"}},
+                "mutable": false}}}}}']],
   [[{"name":"mydb","tables":{"a":{"columns":{"x":{"type":{"key":{"refTable":"a","refType":"weak","type":"uuid"}}}}}},"version":"4.2.1"}]])
 
 dnl Schemas without version numbers are accepted for backward
index cbbccab5e5db60a8b959f0f9fa24589c6518235e..edffae1bc075d3b71be2b724f50cfb757cf679ce 100644 (file)
@@ -532,7 +532,7 @@ AT_SKIP_IF([test "$HAVE_OPENSSL" = no])
 # msys on Windows does not convert the path style automatically.
 # So, do that forcefully with a 'pwd -W' (called through pwd() function).
 PKIDIR="$(cd $abs_top_builddir/tests && pwd)"
-AT_SKIP_IF([expr "$PKIDIR" : ".*[      '\"
+AT_SKIP_IF([expr "$PKIDIR" : ".*[       '\"
 \\]"])
 AT_DATA([schema],
   [[{"name": "mydb",
@@ -657,9 +657,9 @@ ovsdb_check_online_compaction() {
     dnl than replacing the symlinks with regular files.
     mkdir dir
     if test "$IS_WIN32" = "no"; then
-       ln -s dir/db db
-       ln -s dir/.db.~lock~ .db.~lock~
-       AT_SKIP_IF([test ! -h db || test ! -h .db.~lock~])
+        ln -s dir/db db
+        ln -s dir/.db.~lock~ .db.~lock~
+        AT_SKIP_IF([test ! -h db || test ! -h .db.~lock~])
     fi
     AT_CHECK([if test $model = standalone; then
                   ovsdb-tool create db schema
@@ -673,33 +673,33 @@ ovsdb_check_online_compaction() {
     dnl Do a bunch of random transactions that put crap in the database log.
     AT_CHECK(
       [[for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
-         set -- $pair
-         ovsdb-client transact unix:socket '
-           ["ordinals",
-            {"op": "insert",
-             "table": "ordinals",
-             "row": {"name": "'$1'", "number": '$2'}},
-            {"op": "comment",
-             "comment": "add row for '"$pair"'"}]'
-         ovsdb-client transact unix:socket '
-           ["ordinals",
-            {"op": "delete",
-             "table": "ordinals",
-             "where": [["number", "==", '$2']]},
-            {"op": "comment",
-             "comment": "delete row for '"$2"'"}]'
-         ovsdb-client transact unix:socket '
-           ["ordinals",
-            {"op": "insert",
-             "table": "ordinals",
-             "row": {"name": "'$1'", "number": '$2'}},
-            {"op": "comment",
-             "comment": "add back row for '"$pair"'"}]'
-       done]],
+          set -- $pair
+          ovsdb-client transact unix:socket '
+            ["ordinals",
+             {"op": "insert",
+              "table": "ordinals",
+              "row": {"name": "'$1'", "number": '$2'}},
+             {"op": "comment",
+              "comment": "add row for '"$pair"'"}]'
+          ovsdb-client transact unix:socket '
+            ["ordinals",
+             {"op": "delete",
+              "table": "ordinals",
+              "where": [["number", "==", '$2']]},
+             {"op": "comment",
+              "comment": "delete row for '"$2"'"}]'
+          ovsdb-client transact unix:socket '
+            ["ordinals",
+             {"op": "insert",
+              "table": "ordinals",
+              "row": {"name": "'$1'", "number": '$2'}},
+             {"op": "comment",
+              "comment": "add back row for '"$pair"'"}]'
+        done]],
       [0], [stdout])
     if test $model = standalone; then
-       dnl Check that all the crap is in fact in the database log.
-       AT_CHECK([[uuidfilt db | grep -v ^OVSDB | sed 's/"_date":[0-9]*/"_date":0/' | ovstest test-json --multiple -]], [0],
+        dnl Check that all the crap is in fact in the database log.
+        AT_CHECK([[uuidfilt db | grep -v ^OVSDB | sed 's/"_date":[0-9]*/"_date":0/' | ovstest test-json --multiple -]], [0],
 [[{"cksum":"12345678 9","name":"ordinals","tables":{"ordinals":{"columns":{"name":{"type":"string"},"number":{"type":"integer"}},"indexes":[["number"]]}},"version":"5.1.3"}
 {"_comment":"add row for zero 0","_date":0,"ordinals":{"<0>":{"name":"zero"}}}
 {"_comment":"delete row for 0","_date":0,"ordinals":{"<0>":null}}
@@ -722,7 +722,7 @@ ovsdb_check_online_compaction() {
 ]])
     else
         dnl Check that at least there's a lot of transactions.
-       AT_CHECK([test `wc -l < db` -gt 50])
+        AT_CHECK([test `wc -l < db` -gt 50])
     fi
     dnl Dump out and check the actual database contents.
     AT_CHECK([ovsdb-client dump unix:socket ordinals], [0], [stdout])
@@ -749,10 +749,10 @@ ovs-appctl: ovsdb-server: server returned an error
     dnl Make sure that "db" is still a symlink to dir/db instead of getting
     dnl replaced by a regular file, ditto for .db.~lock~.
     if test "$IS_WIN32" = "no"; then
-       AT_CHECK([test -h db])
-       AT_CHECK([test -h .db.~lock~])
-       AT_CHECK([test -f dir/db])
-       AT_CHECK([test -f dir/.db.~lock~])
+        AT_CHECK([test -h db])
+        AT_CHECK([test -h .db.~lock~])
+        AT_CHECK([test -f dir/db])
+        AT_CHECK([test -f dir/.db.~lock~])
     fi
 
     # We can't fully re-check the contents of the database log, because the
@@ -781,10 +781,10 @@ _uuid                                name  number
     dnl Now do some more transactions.
     AT_CHECK(
       [[ovsdb-client transact unix:socket '
-        ["ordinals",
-         {"op": "delete",
-          "table": "ordinals",
-          "where": [["number", "<", 3]]}]']],
+         ["ordinals",
+          {"op": "delete",
+           "table": "ordinals",
+           "where": [["number", "<", 3]]}]']],
       [0], [[[{"count":3}]
 ]], [ignore])
 
@@ -838,17 +838,17 @@ ovsdb_check_online_conversion() {
       [[{"name": "ordinals",
      "tables": {
        "ordinals": {
-        "columns": {
-          "number": {"type": "integer"}}}}}
+         "columns": {
+           "number": {"type": "integer"}}}}}
 ]])
     dnl Make sure that "ovsdb-tool create" works with a dangling symlink for
     dnl the database and the lockfile, creating the target of each symlink
     dnl rather than replacing the symlinks with regular files.
     mkdir dir
     if test "$IS_WIN32" = "no"; then
-       ln -s dir/db db
-       ln -s dir/.db.~lock~ .db.~lock~
-       AT_SKIP_IF([test ! -h db || test ! -h .db.~lock~])
+        ln -s dir/db db
+        ln -s dir/.db.~lock~ .db.~lock~
+        AT_SKIP_IF([test ! -h db || test ! -h .db.~lock~])
     fi
     AT_CHECK([if test $model = standalone; then
                   ovsdb-tool create db schema
@@ -863,15 +863,15 @@ ovsdb_check_online_conversion() {
     dnl Put some data in the database.
     AT_CHECK(
       [[for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
-         set -- $pair
-         ovsdb-client transact '
-           ["ordinals",
-            {"op": "insert",
-             "table": "ordinals",
-             "row": {"name": "'$1'", "number": '$2'}},
-            {"op": "comment",
-             "comment": "add row for '"$pair"'"}]'
-       done | uuidfilt]], [0],
+          set -- $pair
+          ovsdb-client transact '
+            ["ordinals",
+             {"op": "insert",
+              "table": "ordinals",
+              "row": {"name": "'$1'", "number": '$2'}},
+             {"op": "comment",
+              "comment": "add row for '"$pair"'"}]'
+        done | uuidfilt]], [0],
     [[[{"uuid":["uuid","<0>"]},{}]
 [{"uuid":["uuid","<1>"]},{}]
 [{"uuid":["uuid","<2>"]},{}]
@@ -913,12 +913,12 @@ ovsdb_check_online_conversion() {
     dnl Start two long-running transactions (triggers) on the 'ordinals' db,
     dnl one that is database change aware and one that is not.
     ordinals_txn='[["ordinals",
-                   {"op": "wait",
-                    "table": "ordinals",
-                    "where": [["name", "==", "seven"]],
-                    "columns": ["name", "number"],
-                    "rows": [],
-                    "until": "!="}]]'
+                    {"op": "wait",
+                     "table": "ordinals",
+                     "where": [["name", "==", "seven"]],
+                     "columns": ["name", "number"],
+                     "rows": [],
+                     "until": "!="}]]'
     AT_CHECK([ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-ordinals-aware.pid --log-file=trigger-ordinals-aware.log --db-change-aware transact "$ordinals_txn"  > trigger-ordinals-aware.stdout 2> trigger-ordinals-aware.stderr])
     AT_CAPTURE_FILE([trigger-ordinals-aware.stdout])
     AT_CAPTURE_FILE([trigger-ordinals-aware.log])
@@ -932,12 +932,12 @@ ovsdb_check_online_conversion() {
     dnl Start two long-running transactions (triggers) on the _Server db,
     dnl one that is database change aware and one that is not.
     server_txn='[["_Server",
-                 {"op": "wait",
-                  "table": "Database",
-                  "where": [["name", "==", "xyzzy"]],
-                  "columns": ["name"],
-                  "rows": [],
-                  "until": "!="}]]'
+                  {"op": "wait",
+                   "table": "Database",
+                   "where": [["name", "==", "xyzzy"]],
+                   "columns": ["name"],
+                   "rows": [],
+                   "until": "!="}]]'
     AT_CHECK([ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-server-aware.pid --log-file=trigger-server-aware.log --db-change-aware transact "$server_txn"  > trigger-server-aware.stdout 2> trigger-server-aware.stderr])
     AT_CAPTURE_FILE([trigger-server-aware.stdout])
     AT_CAPTURE_FILE([trigger-server-aware.log])
@@ -974,9 +974,9 @@ _uuid                                name  number
     dnl Verify that the "ordinals" monitors behaved as they should have.
     dnl Both should have exited, for different reasons.
     for x in aware unaware; do
-       echo $x
-       OVS_WAIT_WHILE([test -e monitor-ordinals-$x.pid])
-       AT_CHECK([sort -k 3 monitor-ordinals-$x.stdout | uuidfilt], [0],
+        echo $x
+        OVS_WAIT_WHILE([test -e monitor-ordinals-$x.pid])
+        AT_CHECK([sort -k 3 monitor-ordinals-$x.stdout | uuidfilt], [0],
     [<0> initial 0 zero
 <1> initial 1 one
 <2> initial 2 two
@@ -993,7 +993,7 @@ _uuid                                name  number
     dnl Verify that the _Server monitors behaved as they should have.
     dnl The db-aware monitor should still be running, but not the unaware one.
     for x in aware unaware; do
-       AT_CHECK([sort -k 3 monitor-server-$x.stdout | uuidfilt], [0],
+        AT_CHECK([sort -k 3 monitor-server-$x.stdout | uuidfilt], [0],
     [<0> initial _Server
 <1> initial ordinals
 ])
@@ -1006,8 +1006,8 @@ _uuid                                name  number
     dnl Verify that the "ordinals" triggers behaved as they should have:
     dnl Both should have exited, for different reasons.
     for x in unaware aware; do
-       OVS_WAIT_WHILE([test -e trigger-ordinals-$x.pid])
-       AT_CHECK([cat trigger-ordinals-$x.stdout])
+        OVS_WAIT_WHILE([test -e trigger-ordinals-$x.pid])
+        AT_CHECK([cat trigger-ordinals-$x.stdout])
     done
     AT_CHECK([cat trigger-ordinals-unaware.stderr], [0], [ovsdb-client: transaction failed (End of file)
 ])
@@ -1017,7 +1017,7 @@ _uuid                                name  number
     dnl Verify that the _Server triggers behaved as they should have:
     dnl The db-aware trigger should still be waiting, but not the unaware one.
     for x in aware unaware; do
-       AT_CHECK([cat trigger-server-$x.stdout])
+        AT_CHECK([cat trigger-server-$x.stdout])
     done
     OVS_WAIT_WHILE([test -e trigger-server-unaware.pid])
     AT_CHECK([sed 's/.*: //' trigger-ordinals-unaware.stderr], [0], [transaction failed (End of file)
@@ -1026,10 +1026,10 @@ _uuid                                name  number
 
     AT_CAPTURE_FILE([db])
     if test $model = standalone; then
-       dnl We can't fully re-check the contents of the database log, because the
-       dnl order of the records is not predictable, but there should only be 4 lines
-       dnl in it now.
-       AT_CHECK([test `wc -l < db` -eq 4])
+        dnl We can't fully re-check the contents of the database log, because the
+        dnl order of the records is not predictable, but there should only be 4 lines
+        dnl in it now.
+        AT_CHECK([test `wc -l < db` -eq 4])
     fi
     dnl Check that the dumped data is the same except for the removed column:
     AT_CHECK([ovsdb-client dump unix:db.sock ordinals | uuidfilt], [0], [dnl
@@ -1048,12 +1048,12 @@ _uuid                                number
     dnl is as expected.
     AT_CHECK(
       [[ovsdb-client transact '
-        ["ordinals",
-         {"op": "insert",
-          "table": "ordinals",
-          "row": {"number": 6}},
-         {"op": "comment",
-          "comment": "add row for 6"}]' | uuidfilt]], [0],
+         ["ordinals",
+          {"op": "insert",
+           "table": "ordinals",
+           "row": {"number": 6}},
+          {"op": "comment",
+           "comment": "add row for 6"}]' | uuidfilt]], [0],
       [[[{"uuid":["uuid","<0>"]},{}]
 ]])
     if test $model = standalone; then
@@ -1092,10 +1092,10 @@ _uuid                                number
     dnl Make sure that "db" is still a symlink to dir/db instead of getting
     dnl replaced by a regular file, ditto for .db.~lock~.
     if test "$IS_WIN32" = "no"; then
-       AT_CHECK([test -h db])
-       AT_CHECK([test -h .db.~lock~])
-       AT_CHECK([test -f dir/db])
-       AT_CHECK([test -f dir/.db.~lock~])
+        AT_CHECK([test -h db])
+        AT_CHECK([test -h .db.~lock~])
+        AT_CHECK([test -f dir/db])
+        AT_CHECK([test -f dir/.db.~lock~])
     fi
 
     OVS_APP_EXIT_AND_WAIT([ovsdb-server])
index a27a239ea2b38e288ca65d95e69db8667a181241..359d1f063ee1e77545ba8f8df322c88d0a0ecbf1 100644 (file)
@@ -118,9 +118,9 @@ AT_CHECK([[uuidfilt db | grep -v ^OVSDB | sed 's/"_date":[0-9]*/"_date":0/' | ov
 dnl Dump out and check the actual database contents.
 on_exit 'kill `cat ovsdb-server.pid`'
 AT_CHECK([[ovsdb-server --detach --pidfile --no-chdir --remote=punix:socket db]],
-        [0], [stdout], [ignore])
+         [0], [stdout], [ignore])
 AT_CHECK([[ovsdb-client dump unix:socket ordinals]],
-        [0], [stdout], [ignore])
+         [0], [stdout], [ignore])
 OVS_APP_EXIT_AND_WAIT([ovsdb-server])
 
 AT_CHECK([uuidfilt stdout], [0], [dnl
@@ -151,9 +151,9 @@ AT_CAPTURE_FILE([db])
 AT_CHECK([test `wc -l < db` -eq 4])
 dnl And check that the dumped data is the same too:
 AT_CHECK([[ovsdb-server --detach --pidfile --no-chdir --remote=punix:socket db]],
-        [0], [stdout], [ignore])
+         [0], [stdout], [ignore])
 AT_CHECK([[ovsdb-client dump unix:socket ordinals]],
-        [0], [stdout], [ignore])
+         [0], [stdout], [ignore])
 OVS_APP_EXIT_AND_WAIT([ovsdb-server])
 
 AT_CHECK([uuidfilt stdout], [0], [dnl
@@ -427,12 +427,12 @@ AT_CHECK(
   [[for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
       set -- $pair
       ovsdb-tool transact db1 '
-       ["ordinals",
-        {"op": "insert",
-         "table": "ordinals",
-         "row": {"name": "'$1'", "number": '$2'}},
-        {"op": "comment",
-         "comment": "add row for '"$pair"'"}]'
+        ["ordinals",
+         {"op": "insert",
+          "table": "ordinals",
+          "row": {"name": "'$1'", "number": '$2'}},
+         {"op": "comment",
+          "comment": "add row for '"$pair"'"}]'
     done | uuidfilt]], [0],
 [[[{"uuid":["uuid","<0>"]},{}]
 [{"uuid":["uuid","<1>"]},{}]
index 0c8829f49fa9f6754d318ed3ea36f0641ba5d4e4..f3fac6385b625f4b1bd4147b8e04ed6508751a05 100644 (file)
@@ -6,7 +6,7 @@ m4_divert_push([PREPARE_TESTS])
 # of every rxq (one per line) in the form:
 # port_name rxq_id numa_id core_id
 parse_pmd_rxq_show () {
-    awk '/pmd thread/ {numa=$4; core=substr($6, 1, length($6) - 1)} /\tport:/ {print  $2, $4, numa, core}' | sort
+    awk '/pmd thread/ {numa=$4; core=substr($6, 1, length($6) - 1)} /^  port:/ {print  $2, $4, numa, core}' | sort
 }
 
 # Given the output of `ovs-appctl dpif-netdev/pmd-rxq-show`,
@@ -72,8 +72,8 @@ CHECK_PMD_THREADS_CREATED()
 
 AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show | sed SED_NUMA_CORE_PATTERN], [0], [dnl
 pmd thread numa_id <cleared> core_id <cleared>:
-       isolated : false
-       port: p0                queue-id:  0    pmd usage: NOT AVAIL
+  isolated : false
+  port: p0                queue-id:  0  pmd usage: NOT AVAIL
 ])
 
 AT_CHECK([ovs-appctl dpif/show | sed 's/\(tx_queues=\)[[0-9]]*/\1<cleared>/g'], [0], [dnl
@@ -103,15 +103,15 @@ dummy@ovs-dummy: hit:0 missed:0
 
 AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show | sed SED_NUMA_CORE_PATTERN], [0], [dnl
 pmd thread numa_id <cleared> core_id <cleared>:
-       isolated : false
-       port: p0                queue-id:  0    pmd usage: NOT AVAIL
-       port: p0                queue-id:  1    pmd usage: NOT AVAIL
-       port: p0                queue-id:  2    pmd usage: NOT AVAIL
-       port: p0                queue-id:  3    pmd usage: NOT AVAIL
-       port: p0                queue-id:  4    pmd usage: NOT AVAIL
-       port: p0                queue-id:  5    pmd usage: NOT AVAIL
-       port: p0                queue-id:  6    pmd usage: NOT AVAIL
-       port: p0                queue-id:  7    pmd usage: NOT AVAIL
+  isolated : false
+  port: p0                queue-id:  0  pmd usage: NOT AVAIL
+  port: p0                queue-id:  1  pmd usage: NOT AVAIL
+  port: p0                queue-id:  2  pmd usage: NOT AVAIL
+  port: p0                queue-id:  3  pmd usage: NOT AVAIL
+  port: p0                queue-id:  4  pmd usage: NOT AVAIL
+  port: p0                queue-id:  5  pmd usage: NOT AVAIL
+  port: p0                queue-id:  6  pmd usage: NOT AVAIL
+  port: p0                queue-id:  7  pmd usage: NOT AVAIL
 ])
 
 OVS_VSWITCHD_STOP
@@ -134,15 +134,15 @@ dummy@ovs-dummy: hit:0 missed:0
 
 AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show | sed SED_NUMA_CORE_PATTERN], [0], [dnl
 pmd thread numa_id <cleared> core_id <cleared>:
-       isolated : false
-       port: p0                queue-id:  0    pmd usage: NOT AVAIL
-       port: p0                queue-id:  1    pmd usage: NOT AVAIL
-       port: p0                queue-id:  2    pmd usage: NOT AVAIL
-       port: p0                queue-id:  3    pmd usage: NOT AVAIL
-       port: p0                queue-id:  4    pmd usage: NOT AVAIL
-       port: p0                queue-id:  5    pmd usage: NOT AVAIL
-       port: p0                queue-id:  6    pmd usage: NOT AVAIL
-       port: p0                queue-id:  7    pmd usage: NOT AVAIL
+  isolated : false
+  port: p0                queue-id:  0  pmd usage: NOT AVAIL
+  port: p0                queue-id:  1  pmd usage: NOT AVAIL
+  port: p0                queue-id:  2  pmd usage: NOT AVAIL
+  port: p0                queue-id:  3  pmd usage: NOT AVAIL
+  port: p0                queue-id:  4  pmd usage: NOT AVAIL
+  port: p0                queue-id:  5  pmd usage: NOT AVAIL
+  port: p0                queue-id:  6  pmd usage: NOT AVAIL
+  port: p0                queue-id:  7  pmd usage: NOT AVAIL
 ])
 
 TMP=$(cat ovs-vswitchd.log | wc -l | tr -d [[:blank:]])
@@ -160,15 +160,15 @@ CHECK_PMD_THREADS_CREATED([1], [], [+$TMP])
 
 AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show | sed SED_NUMA_CORE_PATTERN], [0], [dnl
 pmd thread numa_id <cleared> core_id <cleared>:
-       isolated : false
-       port: p0                queue-id:  0    pmd usage: NOT AVAIL
-       port: p0                queue-id:  1    pmd usage: NOT AVAIL
-       port: p0                queue-id:  2    pmd usage: NOT AVAIL
-       port: p0                queue-id:  3    pmd usage: NOT AVAIL
-       port: p0                queue-id:  4    pmd usage: NOT AVAIL
-       port: p0                queue-id:  5    pmd usage: NOT AVAIL
-       port: p0                queue-id:  6    pmd usage: NOT AVAIL
-       port: p0                queue-id:  7    pmd usage: NOT AVAIL
+  isolated : false
+  port: p0                queue-id:  0  pmd usage: NOT AVAIL
+  port: p0                queue-id:  1  pmd usage: NOT AVAIL
+  port: p0                queue-id:  2  pmd usage: NOT AVAIL
+  port: p0                queue-id:  3  pmd usage: NOT AVAIL
+  port: p0                queue-id:  4  pmd usage: NOT AVAIL
+  port: p0                queue-id:  5  pmd usage: NOT AVAIL
+  port: p0                queue-id:  6  pmd usage: NOT AVAIL
+  port: p0                queue-id:  7  pmd usage: NOT AVAIL
 ])
 
 OVS_VSWITCHD_STOP
@@ -197,14 +197,14 @@ dummy@ovs-dummy: hit:0 missed:0
 
 AT_CHECK([ovs-appctl dpif-netdev/pmd-stats-show | sed SED_NUMA_CORE_PATTERN | sed '/cycles/d' | grep pmd -A 8], [0], [dnl
 pmd thread numa_id <cleared> core_id <cleared>:
-       packets received: 0
-       packet recirculations: 0
-       avg. datapath passes per packet: 0.00
-       emc hits: 0
-       megaflow hits: 0
-       avg. subtable lookups per megaflow hit: 0.00
-       miss with success upcall: 0
-       miss with failed upcall: 0
+  packets received: 0
+  packet recirculations: 0
+  avg. datapath passes per packet: 0.00
+  emc hits: 0
+  megaflow hits: 0
+  avg. subtable lookups per megaflow hit: 0.00
+  miss with success upcall: 0
+  miss with failed upcall: 0
 ])
 
 ovs-appctl time/stop
@@ -227,14 +227,14 @@ recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:77,dst=50:
 
 AT_CHECK([ovs-appctl dpif-netdev/pmd-stats-show | sed SED_NUMA_CORE_PATTERN | sed '/cycles/d' | grep pmd -A 8], [0], [dnl
 pmd thread numa_id <cleared> core_id <cleared>:
-       packets received: 20
-       packet recirculations: 0
-       avg. datapath passes per packet: 1.00
-       emc hits: 19
-       megaflow hits: 0
-       avg. subtable lookups per megaflow hit: 0.00
-       miss with success upcall: 1
-       miss with failed upcall: 0
+  packets received: 20
+  packet recirculations: 0
+  avg. datapath passes per packet: 1.00
+  emc hits: 19
+  megaflow hits: 0
+  avg. subtable lookups per megaflow hit: 0.00
+  miss with success upcall: 1
+  miss with failed upcall: 0
 ])
 
 OVS_VSWITCHD_STOP
index d5701d6c19767c08367b075ea851ccb9e32217ce..63d07c65206645bf6829dadde41818b6c84a107e 100755 (executable)
@@ -69,8 +69,8 @@ run ovs-vsctl --no-wait \
     -- set bridge br0 datapath-type=dummy fail-mode=secure
 for port in p1 p2 p3 p4; do
     run ovs-vsctl --no-wait \
-       -- add-port br0 $port \
-       -- set interface $port type=dummy \
+        -- add-port br0 $port \
+        -- set interface $port type=dummy \
                                options:pstream=punix:$OVS_RUNDIR/$port
 done
 run ovs-vsctl \
@@ -84,9 +84,9 @@ cat <<EOF
 
 ----------------------------------------------------------------------
 Logs may be found under $sandbox, e.g.:
-       $sandbox/oft.log
-       $sandbox/ovs-vswitchd.log
-       $sandbox/ovsdb-server.log
+        $sandbox/oft.log
+        $sandbox/ovs-vswitchd.log
+        $sandbox/ovsdb-server.log
 ----------------------------------------------------------------------
 EOF
 
index 2aea14db520788172363db5e674a482d6bae81f1..fedf73d9492cc1c0fdf0aa60605677349ac96f42 100755 (executable)
@@ -81,7 +81,7 @@ do
         -- set controller $bridge connection-mode=out-of-band \
                                   max-backoff=1000 \
         -- add-port $bridge $port1 \
-       -- set interface $port1 ofport_request=1 type=dummy \
+        -- set interface $port1 ofport_request=1 type=dummy \
                                 options:${stream_mode}:"$sandbox"/p1.sock \
         -- add-port $bridge $port2 \
         -- set interface $port2 ofport_request=2 type=dummy \
@@ -144,7 +144,7 @@ cat <<EOF
 
 ----------------------------------------------------------------------
 Logs may be found under $sandbox, e.g.:$logs
-       $sandbox/ovs-vswitchd.log
-       $sandbox/ovsdb-server.log
+        $sandbox/ovs-vswitchd.log
+        $sandbox/ovsdb-server.log
 ----------------------------------------------------------------------
 EOF
index 059dd04baad4c8f938bf3db4edfb5ce1389bc17d..bcb5bb7826228b1226cf65f2a01f0672b8c813f5 100644 (file)
@@ -49,7 +49,7 @@ parse_options(int argc, char *argv[])
     static const struct option long_options[] = {
         {"help", no_argument, NULL, 'h'},
         {"version", no_argument, NULL, 'V'},
-               {"verbose", optional_argument, NULL, 'v'},
+        {"verbose", optional_argument, NULL, 'v'},
         {NULL, 0, NULL, 0},
     };
     char *short_options = "hVv";
index 82e950273c4b7319fbc96f8994f927e2fb4c80bb..460d4d6c54d076fcb8656dd9981095305d5e393a 100644 (file)
@@ -113,16 +113,16 @@ struct sflow_xdr {
     struct {
         uint32_t HEADER;
         uint32_t SWITCH;
-       uint32_t TUNNEL4_OUT;
-       uint32_t TUNNEL4_IN;
-       uint32_t TUNNEL_VNI_OUT;
-       uint32_t TUNNEL_VNI_IN;
-       uint32_t MPLS;
-       uint32_t IFCOUNTERS;
-       uint32_t ETHCOUNTERS;
-       uint32_t LACPCOUNTERS;
-       uint32_t OPENFLOWPORT;
-       uint32_t PORTNAME;
+        uint32_t TUNNEL4_OUT;
+        uint32_t TUNNEL4_IN;
+        uint32_t TUNNEL_VNI_OUT;
+        uint32_t TUNNEL_VNI_IN;
+        uint32_t MPLS;
+        uint32_t IFCOUNTERS;
+        uint32_t ETHCOUNTERS;
+        uint32_t LACPCOUNTERS;
+        uint32_t OPENFLOWPORT;
+        uint32_t PORTNAME;
     } offset;
 
     /* Flow sample fields. */
@@ -245,39 +245,39 @@ process_counter_sample(struct sflow_xdr *x)
         printf("\n");
     }
     if (x->offset.LACPCOUNTERS) {
-       struct eth_addr *mac;
-       union {
-           ovs_be32 all;
-           struct {
-               uint8_t actorAdmin;
-               uint8_t actorOper;
-               uint8_t partnerAdmin;
-               uint8_t partnerOper;
-           } v;
-       } state;
+        struct eth_addr *mac;
+        union {
+            ovs_be32 all;
+            struct {
+                uint8_t actorAdmin;
+                uint8_t actorOper;
+                uint8_t partnerAdmin;
+                uint8_t partnerOper;
+            } v;
+        } state;
 
         sflowxdr_setc(x, x->offset.LACPCOUNTERS);
         printf("LACPCOUNTERS");
-       mac = (void *)sflowxdr_str(x);
-       printf(" sysID="ETH_ADDR_FMT, ETH_ADDR_ARGS(*mac));
-       sflowxdr_skip(x, 2);
-       mac = (void *)sflowxdr_str(x);
-       printf(" partnerID="ETH_ADDR_FMT, ETH_ADDR_ARGS(*mac));
-       sflowxdr_skip(x, 2);
-       printf(" aggID=%"PRIu32, sflowxdr_next(x));
-       state.all = sflowxdr_next_n(x);
-       printf(" actorAdmin=0x%"PRIx32, state.v.actorAdmin);
-       printf(" actorOper=0x%"PRIx32, state.v.actorOper);
-       printf(" partnerAdmin=0x%"PRIx32, state.v.partnerAdmin);
-       printf(" partnerOper=0x%"PRIx32, state.v.partnerOper);
-       printf(" LACPDUsRx=%"PRIu32, sflowxdr_next(x));
-       printf(" markerPDUsRx=%"PRIu32, sflowxdr_next(x));
-       printf(" markerRespPDUsRx=%"PRIu32, sflowxdr_next(x));
-       printf(" unknownRx=%"PRIu32, sflowxdr_next(x));
-       printf(" illegalRx=%"PRIu32, sflowxdr_next(x));
-       printf(" LACPDUsTx=%"PRIu32, sflowxdr_next(x));
-       printf(" markerPDUsTx=%"PRIu32, sflowxdr_next(x));
-       printf(" markerRespPDUsTx=%"PRIu32, sflowxdr_next(x));
+        mac = (void *)sflowxdr_str(x);
+        printf(" sysID="ETH_ADDR_FMT, ETH_ADDR_ARGS(*mac));
+        sflowxdr_skip(x, 2);
+        mac = (void *)sflowxdr_str(x);
+        printf(" partnerID="ETH_ADDR_FMT, ETH_ADDR_ARGS(*mac));
+        sflowxdr_skip(x, 2);
+        printf(" aggID=%"PRIu32, sflowxdr_next(x));
+        state.all = sflowxdr_next_n(x);
+        printf(" actorAdmin=0x%"PRIx32, state.v.actorAdmin);
+        printf(" actorOper=0x%"PRIx32, state.v.actorOper);
+        printf(" partnerAdmin=0x%"PRIx32, state.v.partnerAdmin);
+        printf(" partnerOper=0x%"PRIx32, state.v.partnerOper);
+        printf(" LACPDUsRx=%"PRIu32, sflowxdr_next(x));
+        printf(" markerPDUsRx=%"PRIu32, sflowxdr_next(x));
+        printf(" markerRespPDUsRx=%"PRIu32, sflowxdr_next(x));
+        printf(" unknownRx=%"PRIu32, sflowxdr_next(x));
+        printf(" illegalRx=%"PRIu32, sflowxdr_next(x));
+        printf(" LACPDUsTx=%"PRIu32, sflowxdr_next(x));
+        printf(" markerPDUsTx=%"PRIu32, sflowxdr_next(x));
+        printf(" markerRespPDUsTx=%"PRIu32, sflowxdr_next(x));
         printf("\n");
     }
     if (x->offset.OPENFLOWPORT) {
@@ -285,21 +285,21 @@ process_counter_sample(struct sflow_xdr *x)
         printf("OPENFLOWPORT");
         printf(" datapath_id=%"PRIu64, sflowxdr_next_int64(x));
         printf(" port_no=%"PRIu32, sflowxdr_next(x));
-       printf("\n");
+        printf("\n");
     }
     if (x->offset.PORTNAME) {
-       uint32_t pnLen;
-       const char *pnBytes;
-       char portName[SFL_MAX_PORTNAME_LEN + 1];
+        uint32_t pnLen;
+        const char *pnBytes;
+        char portName[SFL_MAX_PORTNAME_LEN + 1];
         sflowxdr_setc(x, x->offset.PORTNAME);
         printf("PORTNAME");
-       pnLen = sflowxdr_next(x);
-       SFLOWXDR_assert(x, (pnLen <= SFL_MAX_PORTNAME_LEN));
-       pnBytes = sflowxdr_str(x);
-       memcpy(portName, pnBytes, pnLen);
-       portName[pnLen] = '\0';
-       printf(" portName=%s", portName);
-       printf("\n");
+        pnLen = sflowxdr_next(x);
+        SFLOWXDR_assert(x, (pnLen <= SFL_MAX_PORTNAME_LEN));
+        pnBytes = sflowxdr_str(x);
+        memcpy(portName, pnBytes, pnLen);
+        portName[pnLen] = '\0';
+        printf(" portName=%s", portName);
+        printf("\n");
     }
     if (x->offset.ETHCOUNTERS) {
         sflowxdr_setc(x, x->offset.ETHCOUNTERS);
@@ -386,22 +386,22 @@ process_flow_sample(struct sflow_xdr *x)
 
         if (x->offset.TUNNEL4_IN) {
             sflowxdr_setc(x, x->offset.TUNNEL4_IN);
-           print_struct_ipv4(x, "tunnel4_in");
+            print_struct_ipv4(x, "tunnel4_in");
         }
 
         if (x->offset.TUNNEL4_OUT) {
             sflowxdr_setc(x, x->offset.TUNNEL4_OUT);
-           print_struct_ipv4(x, "tunnel4_out");
+            print_struct_ipv4(x, "tunnel4_out");
         }
 
         if (x->offset.TUNNEL_VNI_IN) {
             sflowxdr_setc(x, x->offset.TUNNEL_VNI_IN);
-           printf( " tunnel_in_vni=%"PRIu32, sflowxdr_next(x));
+            printf( " tunnel_in_vni=%"PRIu32, sflowxdr_next(x));
         }
 
         if (x->offset.TUNNEL_VNI_OUT) {
             sflowxdr_setc(x, x->offset.TUNNEL_VNI_OUT);
-           printf( " tunnel_out_vni=%"PRIu32, sflowxdr_next(x));
+            printf( " tunnel_out_vni=%"PRIu32, sflowxdr_next(x));
         }
 
         if (x->offset.MPLS) {
@@ -616,23 +616,23 @@ process_datagram(struct sflow_xdr *x)
                     sflowxdr_mark_unique(x, &x->offset.SWITCH);
                     break;
 
-               case SFLOW_TAG_PKT_TUNNEL4_OUT:
+                case SFLOW_TAG_PKT_TUNNEL4_OUT:
                     sflowxdr_mark_unique(x, &x->offset.TUNNEL4_OUT);
                     break;
 
-               case SFLOW_TAG_PKT_TUNNEL4_IN:
+                case SFLOW_TAG_PKT_TUNNEL4_IN:
                     sflowxdr_mark_unique(x, &x->offset.TUNNEL4_IN);
                     break;
 
-               case SFLOW_TAG_PKT_TUNNEL_VNI_OUT:
+                case SFLOW_TAG_PKT_TUNNEL_VNI_OUT:
                     sflowxdr_mark_unique(x, &x->offset.TUNNEL_VNI_OUT);
                     break;
 
-               case SFLOW_TAG_PKT_TUNNEL_VNI_IN:
+                case SFLOW_TAG_PKT_TUNNEL_VNI_IN:
                     sflowxdr_mark_unique(x, &x->offset.TUNNEL_VNI_IN);
                     break;
 
-               case SFLOW_TAG_PKT_MPLS:
+                case SFLOW_TAG_PKT_MPLS:
                     sflowxdr_mark_unique(x, &x->offset.MPLS);
                     break;
 
index c8fc2f7ac3276a7044f3ea1867a251288a304f08..ae379db120fb2bd264591aa0b53ced058493ff35 100644 (file)
@@ -662,10 +662,10 @@ AT_CHECK([ovs-ofctl add-tlv-map br0 "{class=0xffff,type=2,len=124}->tun_metadata
 [OFPT_ERROR (xid=0x4): NXTTMFC_TABLE_FULL
 NXT_TLV_TABLE_MOD (xid=0x4):
  ADD mapping table:
class type    length  match field
- ----- ----    ------  -----------
- 0xffff        0x2     124     tun_metadata2
- 0xffff        0x3     124     tun_metadata3
 class  type  length  match field
+ ------  ----  ------  --------------
+ 0xffff   0x2     124  tun_metadata2
+ 0xffff   0x3     124  tun_metadata3
 ])
 
 AT_CHECK([ovs-ofctl add-flow br0 "tun_metadata0,tun_metadata0,actions=drop"], [1], [ignore],
@@ -723,9 +723,9 @@ AT_CHECK([ovs-ofctl del-tlv-map br0 "{class=0xffff,type=3,len=4}->tun_metadata2"
 OFPT_ERROR (xid=0x4): NXTTMFC_INVALID_TLV_DEL
 NXT_TLV_TABLE_MOD (xid=0x4):
  DEL mapping table:
class type    length  match field
- ----- ----    ------  -----------
- 0xffff        0x3     4       tun_metadata2
 class  type  length  match field
+ ------  ----  ------  --------------
+ 0xffff   0x3       4  tun_metadata2
 ])
 
 AT_CHECK([ovs-ofctl del-flows br0], [0])
@@ -748,9 +748,9 @@ AT_CHECK([ovs-ofctl del-tlv-map br0 "{class=0xffff,type=1,len=4}->tun_metadata1"
 OFPT_ERROR (xid=0x4): NXTTMFC_INVALID_TLV_DEL
 NXT_TLV_TABLE_MOD (xid=0x4):
  DEL mapping table:
class type    length  match field
- ----- ----    ------  -----------
- 0xffff        0x1     4       tun_metadata1
 class  type  length  match field
+ ------  ----  ------  --------------
+ 0xffff   0x1       4  tun_metadata1
 ])
 AT_CHECK([ovs-ofctl del-flows br0 "tun_metadata1"])
 AT_CHECK([ovs-ofctl del-tlv-map br0 "{class=0xffff,type=1,len=4}->tun_metadata1"])
@@ -759,9 +759,9 @@ AT_CHECK([ovs-ofctl del-tlv-map br0 "{class=0xffff,type=2,len=4}->tun_metadata2"
 OFPT_ERROR (xid=0x4): NXTTMFC_INVALID_TLV_DEL
 NXT_TLV_TABLE_MOD (xid=0x4):
  DEL mapping table:
class type    length  match field
- ----- ----    ------  -----------
- 0xffff        0x2     4       tun_metadata2
 class  type  length  match field
+ ------  ----  ------  --------------
+ 0xffff   0x2       4  tun_metadata2
 ])
 AT_CHECK([ovs-ofctl del-flows br0 "reg1=0xFF"])
 AT_CHECK([ovs-ofctl del-tlv-map br0], [0])
index bea0604795aa4eb06ea2d687071cb175f3f59e3c..781bedbc6e35e31ef16bc821b84bb22c8ca32f64 100755 (executable)
@@ -393,9 +393,9 @@ if $ovn; then
         $OVS_PKI -B 1024 init
         $OVS_PKI -B 1024 req+sign ovnsb switch
         $OVS_PKI -B 1024 req+sign ovnnb switch
-       for i in $(seq $n_controllers); do
+        for i in $(seq $n_controllers); do
             $OVS_PKI -B 1024 -u req+sign chassis-$i switch
-       done
+        done
     fi
 fi
 rungdb $gdb_ovsdb $gdb_ovsdb_ex ovsdb-server --detach --no-chdir --pidfile -vconsole:off --log-file -vsyslog:off \
@@ -428,7 +428,7 @@ if $ovn; then
             local i=$1; shift
             rungdb $gdb_ovsdb $gdb_ovsdb_ex ovsdb-server --detach --no-chdir \
                    --pidfile=$db$i.pid -vconsole:off --log-file=$db$i.log \
-                  -vsyslog:off \
+                   -vsyslog:off \
                    --remote=db:$schema_name,${DB}_Global,connections \
                    --private-key=db:$schema_name,SSL,private_key \
                    --certificate=db:$schema_name,SSL,certificate \
@@ -535,14 +535,14 @@ if $ovn; then
                --ovnsb-db="$OVN_SB_DB" --ovnnb-db="$OVN_NB_DB"
     done
     for i in $(seq $n_controllers); do
-       rungdb $gdb_ovn_controller $gdb_ovn_controller_ex ovn-controller \
+        rungdb $gdb_ovn_controller $gdb_ovn_controller_ex ovn-controller \
                $OVN_CTRLR_PKI --detach --no-chdir -vsyslog:off \
-              --pidfile=ovn-controller$i.pid -vconsole:off --log-file
+               --pidfile=ovn-controller$i.pid -vconsole:off --log-file
     done
     rungdb $gdb_ovn_controller_vtep $gdb_ovn_controller_vtep_ex \
         ovn-controller-vtep --detach --no-chdir --pidfile -vconsole:off \
         $OVN_CTRLR_PKI --log-file -vsyslog:off \
-       --ovnsb-db=unix:"$sandbox"/ovnsb_db.sock
+        --ovnsb-db=unix:"$sandbox"/ovnsb_db.sock
 fi
 
 cat <<EOF
index 5e6ae0a1bd78740da5fb744e960081bb3b3d0faf..904789f11abe802707a3a6dc44821a9fae2e50e1 100755 (executable)
@@ -18,8 +18,8 @@
 
 for iface in $(cd /sys/class/net && echo *); do
     if [ -d /sys/class/net/$iface ]; then
-       echo Interface $iface:
-       # indent tc output so it's clear which interface it pertains to
-       /sbin/tc -s -d class show dev $iface | /bin/sed 's/^/ /'
+        echo Interface $iface:
+        # indent tc output so it's clear which interface it pertains to
+        /sbin/tc -s -d class show dev $iface | /bin/sed 's/^/ /'
     fi
 done
index 448b5eb5d212e4f34d28c07a2a5f7d1280b105c5..32aa948c6bbcbbf218fd85fe108e4218902b433b 100644 (file)
@@ -119,7 +119,7 @@ main(int argc OVS_UNUSED, char *argv[])
                     : nlh->nlmsg_type == RTM_GETLINK ? "RTM_GETLINK"
                     : nlh->nlmsg_type == RTM_SETLINK ? "RTM_SETLINK"
                     : "other"));
-            printf("\tflags:");
+            printf("  flags:");
             for (i = 0; i < ARRAY_SIZE(flags); i++) {
                 if (iim->ifi_flags & flags[i].flag) {
                     printf(" %s", flags[i].name);
@@ -127,9 +127,9 @@ main(int argc OVS_UNUSED, char *argv[])
             }
             printf("\n");
             if (netnsid_is_remote(nsid)) {
-                printf("\tnetns id: %d\n", nsid);
+                printf("  netns id: %d\n", nsid);
             } else {
-                printf("\tnetns id: local\n");
+                printf("  netns id: local\n");
             }
             if (attrs[IFLA_MASTER]) {
                 uint32_t idx = nl_attr_get_u32(attrs[IFLA_MASTER]);
@@ -137,7 +137,7 @@ main(int argc OVS_UNUSED, char *argv[])
                 if (!if_indextoname(idx, ifname)) {
                     strcpy(ifname, "unknown");
                 }
-                printf("\tmaster=%"PRIu32" (%s)\n", idx, ifname);
+                printf("  master=%"PRIu32" (%s)\n", idx, ifname);
             }
         }
 
index ef06dd967e1e2aad6ef90622f07a8a571aeab7a1..79b8fa853b2ef01b6b08a969ff3128bf56ddea33 100755 (executable)
@@ -539,7 +539,7 @@ case $command in
         done
         ;;
     force-reload-kmod)
-           force_reload_kmod
+            force_reload_kmod
         ;;
     load-kmod)
         insert_mod_if_required
index 24c1da0a93e34951e3d26527afc384b55a4bae1e..72436c08941b4022a2158cb773420cafaff39361 100755 (executable)
@@ -241,82 +241,82 @@ ovn_start_db() {
     local schema_name=$(ovsdb-tool schema-name $schema)
 
     case $model in
-       standalone | backup) ;;
-       clustered)
-           case $servers in
-               [1-9] | [1-9][0-9]) ;;
-               *) echo "${db}db servers must be between 1 and 99" >&2
-                  exit 1
-                  ;;
-           esac
-           ;;
-       *)
-           echo "unknown ${db}db model \"$model\"" >&2
-           exit 1
-           ;;
+        standalone | backup) ;;
+        clustered)
+            case $servers in
+                [1-9] | [1-9][0-9]) ;;
+                *) echo "${db}db servers must be between 1 and 99" >&2
+                   exit 1
+                   ;;
+            esac
+            ;;
+        *)
+            echo "unknown ${db}db model \"$model\"" >&2
+            exit 1
+            ;;
     esac
 
     ovn_start_ovsdb_server() {
-       local i=$1; shift
-       as ${db}$i ovsdb-server --detach --no-chdir --pidfile=$db.pid \
-          -vsyslog:off -vconsole:off --log-file="$sim_base"/$db$i/$db.log \
-          --remote=db:$schema_name,${DB}_Global,connections \
-          --private-key=db:$schema_name,SSL,private_key \
-          --certificate=db:$schema_name,SSL,certificate \
-          --ca-cert=db:$schema_name,SSL,ca_cert \
-          --ssl-protocols=db:$schema_name,SSL,ssl_protocols \
-          --ssl-ciphers=db:$schema_name,SSL,ssl_ciphers \
-          --unixctl=${db} --remote=punix:$db.ovsdb \
-          "$sim_base"/$db$i/$db.db "$@"
+        local i=$1; shift
+        as ${db}$i ovsdb-server --detach --no-chdir --pidfile=$db.pid \
+           -vsyslog:off -vconsole:off --log-file="$sim_base"/$db$i/$db.log \
+           --remote=db:$schema_name,${DB}_Global,connections \
+           --private-key=db:$schema_name,SSL,private_key \
+           --certificate=db:$schema_name,SSL,certificate \
+           --ca-cert=db:$schema_name,SSL,ca_cert \
+           --ssl-protocols=db:$schema_name,SSL,ssl_protocols \
+           --ssl-ciphers=db:$schema_name,SSL,ssl_ciphers \
+           --unixctl=${db} --remote=punix:$db.ovsdb \
+           "$sim_base"/$db$i/$db.db "$@"
     }
 
     ovn_prep_db() {
-       local i=$1
-       mkdir "$sim_base"/${db}$i
-       touch "$sim_base"/${db}$i/.$db.db.~lock~
+        local i=$1
+        mkdir "$sim_base"/${db}$i
+        touch "$sim_base"/${db}$i/.$db.db.~lock~
     }
 
     local n_remotes=1
     case $model in
-       standalone)
-           ovn_prep_db 1
-           ovsdb-tool create "$sim_base"/${db}1/$db.db "$schema"
-           ovn_start_ovsdb_server 1
-           ;;
-       backup)
-           for i in 1 2; do
-               ovn_prep_db $i
-               ovsdb-tool create "$sim_base"/$db$i/$db.db "$schema"
-           done
-           ovn_start_ovsdb_server 1
-           ovn_start_ovsdb_server 2 --sync-from=unix:"$sim_base"/${db}1/$db.ovsdb
-           cat <<EOF
+        standalone)
+            ovn_prep_db 1
+            ovsdb-tool create "$sim_base"/${db}1/$db.db "$schema"
+            ovn_start_ovsdb_server 1
+            ;;
+        backup)
+            for i in 1 2; do
+                ovn_prep_db $i
+                ovsdb-tool create "$sim_base"/$db$i/$db.db "$schema"
+            done
+            ovn_start_ovsdb_server 1
+            ovn_start_ovsdb_server 2 --sync-from=unix:"$sim_base"/${db}1/$db.ovsdb
+            cat <<EOF
 The backup server of OVN $DB can be accessed by:
 * ovn-${db}ctl --db=unix:$sim_base/${db}2/$db.ovsdb
 * ovs-appctl -t $sim_base/${db}2/${db}
 The backup database file is $sim_base/${db}2/$db.db
 EOF
-           ;;
-       clustered)
-           n_remotes=$servers
-           for i in $(seq $servers); do
-               ovn_prep_db $i
-               if test $i = 1; then
-                   ovsdb-tool create-cluster "$sim_base"/$db$i/$db.db "$schema" unix:"$sim_base"/$db$i/db.raft
-               else
-                   ovsdb-tool join-cluster "$sim_base"/$db$i/$db.db $schema_name unix:"$sim_base"/$db$i/db.raft unix:"$sim_base"/${db}1/db.raft
-               fi
-               ovn_start_ovsdb_server $i
-           done
-           for i in $(seq $servers); do
-               ovsdb-client wait unix:"$sim_base"/${db}$i/$db.ovsdb $schema_name connected
-           done
-           ;;
+            ;;
+        clustered)
+            n_remotes=$servers
+            for i in $(seq $servers); do
+                ovn_prep_db $i
+                if test $i = 1; then
+                    ovsdb-tool create-cluster "$sim_base"/$db$i/$db.db "$schema" unix:"$sim_base"/$db$i/db.raft
+                else
+                    ovsdb-tool join-cluster "$sim_base"/$db$i/$db.db $schema_name unix:"$sim_base"/$db$i/db.raft unix:"$sim_base"/${db}1/db.raft
+                fi
+                ovn_start_ovsdb_server $i
+            done
+            for i in $(seq $servers); do
+                ovsdb-client wait unix:"$sim_base"/${db}$i/$db.ovsdb $schema_name connected
+            done
+            ;;
     esac
 
     remote=unix:"$sim_base"/${db}1/$db.ovsdb
     for i in `seq 2 $n_remotes`; do
-       remote=$remote,unix:"$sim_base"/${db}$i/$db.ovsdb
+        remote=$remote,unix:"$sim_base"/${db}$i/$db.ovsdb
     done
     eval OVN_${DB}_DB=\$remote
     eval export OVN_${DB}_DB
@@ -330,30 +330,30 @@ ovn_start() {
     local sbdb_servers=3
     local prev=
     for option; do
-       # This option-parsing mechanism borrowed from a Autoconf-generated
-       # configure script under the following license:
+        # This option-parsing mechanism borrowed from a Autoconf-generated
+        # configure script under the following license:
 
-       # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-       # 2002, 2003, 2004, 2005, 2006, 2009, 2013 Free Software Foundation, Inc.
-       # This configure script is free software; the Free Software Foundation
-       # gives unlimited permission to copy, distribute and modify it.
+        # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+        # 2002, 2003, 2004, 2005, 2006, 2009, 2013 Free Software Foundation, Inc.
+        # This configure script is free software; the Free Software Foundation
+        # gives unlimited permission to copy, distribute and modify it.
 
-       # If the previous option needs an argument, assign it.
-       if test -n "$prev"; then
+        # If the previous option needs an argument, assign it.
+        if test -n "$prev"; then
             eval $prev=\$option
             prev=
             continue
-       fi
-       case $option in
+        fi
+        case $option in
             *=*) optarg=`expr "X$option" : '[^=]*=\(.*\)'` ;;
             *) optarg=yes ;;
-       esac
+        esac
 
-       case $dashdash$option in
+        case $dashdash$option in
             --)
-               dashdash=yes ;;
+                dashdash=yes ;;
             -h|--help)
-               cat <<EOF
+                cat <<EOF
 $FUNCNAME: start OVN central databases and daemons
 usage: $FUNCNAME [OPTION...]
 
@@ -368,47 +368,47 @@ Options:
   --sbdb-servers=N     number of servers in sbdb cluster (default: 3)
   -h, --help           Print this usage message.
 EOF
-               return
-               ;;
+                return
+                ;;
 
             --nbdb-s*=*)
-               nbdb_servers=$optarg
-               nbdb_model=clustered
-               ;;
+                nbdb_servers=$optarg
+                nbdb_model=clustered
+                ;;
             --nbdb-s*)
-               prev=nbdb_servers
-               nbdb_model=clustered
-               ;;
+                prev=nbdb_servers
+                nbdb_model=clustered
+                ;;
             --nbdb-m*=*)
-               nbdb_model=$optarg
-               ;;
+                nbdb_model=$optarg
+                ;;
             --nbdb-m*)
-               prev=nbdb_model
-               ;;
+                prev=nbdb_model
+                ;;
             --sbdb-s*=*)
-               sbdb_servers=$optarg
-               sbdb_model=clustered
-               ;;
+                sbdb_servers=$optarg
+                sbdb_model=clustered
+                ;;
             --sbdb-s*)
-               prev=sbdb_servers
-               sbdb_model=clustered
-               ;;
+                prev=sbdb_servers
+                sbdb_model=clustered
+                ;;
             --sbdb-m*=*)
-               sbdb_model=$optarg
-               ;;
+                sbdb_model=$optarg
+                ;;
             --sbdb-m*)
-               prev=sbdb_model
-               ;;
+                prev=sbdb_model
+                ;;
             -*)
-               echo "unrecognized option $option (use --help for help)" >&2
-               return 1
-               ;;
+                echo "unrecognized option $option (use --help for help)" >&2
+                return 1
+                ;;
             *)
-               echo "$option: non-option arguments not supported (use --help for help)" >&2
-               return 1
-               ;;
-       esac
-       shift
+                echo "$option: non-option arguments not supported (use --help for help)" >&2
+                return 1
+                ;;
+        esac
+        shift
     done
 
     if test -d ovn-sb || test -d ovn-nb; then
index 071b3247749b27f0acd2036bda26487e65f3e96e..d383b287e734643daff677bd4b0604e01a0d950d 100644 (file)
@@ -3141,24 +3141,24 @@ qos_unixctl_show_queue(unsigned int queue_id,
     }
 
     SMAP_FOR_EACH (node, details) {
-        ds_put_format(ds, "\t%s: %s\n", node->key, node->value);
+        ds_put_format(ds, "  %s: %s\n", node->key, node->value);
     }
 
     error = netdev_get_queue_stats(iface->netdev, queue_id, &stats);
     if (!error) {
         if (stats.tx_packets != UINT64_MAX) {
-            ds_put_format(ds, "\ttx_packets: %"PRIu64"\n", stats.tx_packets);
+            ds_put_format(ds, "  tx_packets: %"PRIu64"\n", stats.tx_packets);
         }
 
         if (stats.tx_bytes != UINT64_MAX) {
-            ds_put_format(ds, "\ttx_bytes: %"PRIu64"\n", stats.tx_bytes);
+            ds_put_format(ds, "  tx_bytes: %"PRIu64"\n", stats.tx_bytes);
         }
 
         if (stats.tx_errors != UINT64_MAX) {
-            ds_put_format(ds, "\ttx_errors: %"PRIu64"\n", stats.tx_errors);
+            ds_put_format(ds, "  tx_errors: %"PRIu64"\n", stats.tx_errors);
         }
     } else {
-        ds_put_format(ds, "\tFailed to get statistics for queue %u: %s",
+        ds_put_format(ds, "  Failed to get statistics for queue %u: %s",
                       queue_id, ovs_strerror(error));
     }
 }
index 80f17e89b0ad879b16be59dd26946690e981586f..1e4e342dcb96a644edc403dec23ecba90dbab358 100644 (file)
@@ -1,6 +1,6 @@
 {"name": "Open_vSwitch",
- "version": "7.16.0",
- "cksum": "2403910601 23776",
+ "version": "7.16.1",
+ "cksum": "1452282319 23860",
  "tables": {
    "Open_vSwitch": {
      "columns": {
                             "OpenFlow14",
                             "OpenFlow15",
                             "OpenFlow16"]]},
-          "min": 0, "max": "unlimited"}},
+           "min": 0, "max": "unlimited"}},
        "fail_mode": {
          "type": {"key": {"type": "string",
                           "enum": ["set", ["standalone", "secure"]]},
    "Flow_Table": {
      "columns": {
        "name": {
-        "type": {"key": "string", "min": 0, "max": 1}},
+         "type": {"key": "string", "min": 0, "max": 1}},
        "flow_limit": {
-        "type": {"key": {"type": "integer", "minInteger": 0},
-                 "min": 0, "max": 1}},
+         "type": {"key": {"type": "integer", "minInteger": 0},
+                  "min": 0, "max": 1}},
        "overflow_policy": {
-        "type": {"key": {"type": "string",
-                         "enum": ["set", ["refuse", "evict"]]},
-                 "min": 0, "max": 1}},
+         "type": {"key": {"type": "string",
+                          "enum": ["set", ["refuse", "evict"]]},
+                  "min": 0, "max": 1}},
        "groups": {
-        "type": {"key": "string", "min": 0, "max": "unlimited"}},
+         "type": {"key": "string", "min": 0, "max": "unlimited"}},
        "prefixes": {
          "type": {"key": "string", "min": 0, "max": 3}},
        "external_ids": {
index 1e27a022009834731f7a26c282068c622e1462b5..e432ebef2ecfef40ea985f5185c358f8fe19eb95 100644 (file)
         </ul>
         <p>Some interfaces may not have a software-controllable MAC
         address.  This option only affects internal ports.  For other type ports,
-       you can change the MAC address outside Open vSwitch, using ip command.</p>
+        you can change the MAC address outside Open vSwitch, using ip command.</p>
       </column>
 
       <column name="error">
index c1fbcc75ebea975569d877c5249edbb76657ac51..ba3580836fd2720f9b436b26045c6e84c2de34dc 100644 (file)
@@ -340,7 +340,7 @@ else    # $1 = 2 for upgrade
     if [ "$mode" != "vswitch" ] && [ "$mode" != "openvswitch" ]; then
         printf "\nThe server is not configured to run Open vSwitch.  To run in\n"
         printf "vswitch mode, you must run the following command:\n\n"
-        printf "\txe-switch-network-backend vswitch"
+        printf "  xe-switch-network-backend vswitch"
         printf "\n\n"
     fi
 fi