summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Pfaff <blp@ovn.org>2018-05-25 17:11:07 -0700
committerBen Pfaff <blp@ovn.org>2018-06-11 15:32:00 -0700
commit5a0e4aec1af5cf7741c490bce704577e51e536b9 (patch)
tree0115e5184d50e22d6f6e7c7bd87a2690bdcc6ca4
parent7be29a47576dce715f9c8b2b4f673fa623728ed0 (diff)
downloadopenvswitch-5a0e4aec1af5cf7741c490bce704577e51e536b9.tar.gz
treewide: Convert leading tabs to spaces.
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>
-rw-r--r--Documentation/faq/issues.rst4
-rw-r--r--Documentation/faq/vlan.rst2
-rw-r--r--Documentation/group-selection-method-property.txt2
-rw-r--r--Documentation/ref/ovs-sim.1.rst54
-rw-r--r--Documentation/tutorials/faucet.rst70
-rw-r--r--Documentation/tutorials/ovs-advanced.rst98
-rw-r--r--NEWS2
-rw-r--r--Vagrantfile18
-rw-r--r--debian/copyright.in136
-rw-r--r--debian/openvswitch-switch.README.Debian48
-rwxr-xr-xdebian/openvswitch-switch.init30
-rw-r--r--debian/openvswitch-switch.logrotate6
-rwxr-xr-xdebian/ovn-central.postinst16
-rwxr-xr-xdebian/ovn-host.postinst16
-rw-r--r--include/openvswitch/rconn.h4
-rw-r--r--lib/dpif-netdev.c32
-rw-r--r--lib/dpif.c4
-rw-r--r--lib/meta-flow.xml2146
-rw-r--r--lib/ofp-print.c8
-rw-r--r--ofproto/ofproto-dpif-ipfix.c2
-rw-r--r--ofproto/ofproto-dpif-sflow.c426
-rw-r--r--ofproto/ofproto-dpif-xlate.c2
-rwxr-xr-xovn/utilities/ovn-detrace.in4
-rw-r--r--ovsdb/ovsdb-tool.c6
-rwxr-xr-xrhel/etc_init.d_openvswitch8
-rwxr-xr-xrhel/etc_sysconfig_network-scripts_ifdown-ovs52
-rwxr-xr-xrhel/etc_sysconfig_network-scripts_ifup-ovs338
-rw-r--r--rhel/openvswitch-fedora.spec.in32
-rw-r--r--rhel/openvswitch-kmod-rhel6.spec.in6
-rw-r--r--tests/bfd.at12
-rw-r--r--tests/cfm.at12
-rw-r--r--tests/classifier.at2
-rw-r--r--tests/dpif-netdev.at4
-rw-r--r--tests/interface-reconfigure.at1112
-rw-r--r--tests/lacp.at12
-rw-r--r--tests/ofproto-dpif.at992
-rw-r--r--tests/ofproto-macros.at12
-rw-r--r--tests/ofproto.at40
-rw-r--r--tests/ovn.at12
-rw-r--r--tests/ovs-macros.at4
-rw-r--r--tests/ovs-ofctl.at14
-rw-r--r--tests/ovs-router.at4
-rw-r--r--tests/ovsdb-client.at12
-rw-r--r--tests/ovsdb-cluster.at126
-rw-r--r--tests/ovsdb-condition.at6
-rw-r--r--tests/ovsdb-idl.at2
-rw-r--r--tests/ovsdb-log.at32
-rw-r--r--tests/ovsdb-monitor.at12
-rw-r--r--tests/ovsdb-mutation.at6
-rw-r--r--tests/ovsdb-query.at6
-rw-r--r--tests/ovsdb-row.at6
-rw-r--r--tests/ovsdb-schema.at22
-rw-r--r--tests/ovsdb-server.at170
-rw-r--r--tests/ovsdb-tool.at20
-rw-r--r--tests/pmd.at92
-rwxr-xr-xtests/run-oftest10
-rwxr-xr-xtests/run-ryu6
-rw-r--r--tests/test-lib.c2
-rw-r--r--tests/test-sflow.c120
-rw-r--r--tests/tunnel.at26
-rwxr-xr-xtutorial/ovs-sandbox12
-rwxr-xr-xutilities/bugtool/ovs-bugtool-tc-class-show6
-rw-r--r--utilities/nlmon.c8
-rwxr-xr-xutilities/ovs-ctl.in2
-rwxr-xr-xutilities/ovs-sim.in202
-rw-r--r--vswitchd/bridge.c10
-rw-r--r--vswitchd/vswitch.ovsschema20
-rw-r--r--vswitchd/vswitch.xml2
-rw-r--r--xenserver/openvswitch-xen.spec.in2
69 files changed, 3372 insertions, 3372 deletions
diff --git a/Documentation/faq/issues.rst b/Documentation/faq/issues.rst
index f26eebd0d..8a30dad37 100644
--- a/Documentation/faq/issues.rst
+++ b/Documentation/faq/issues.rst
@@ -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)
diff --git a/Documentation/faq/vlan.rst b/Documentation/faq/vlan.rst
index 991bb3d4c..13d3cde45 100644
--- a/Documentation/faq/vlan.rst
+++ b/Documentation/faq/vlan.rst
@@ -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.
diff --git a/Documentation/group-selection-method-property.txt b/Documentation/group-selection-method-property.txt
index 5320f24b4..29e8249af 100644
--- a/Documentation/group-selection-method-property.txt
+++ b/Documentation/group-selection-method-property.txt
@@ -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,
};
diff --git a/Documentation/ref/ovs-sim.1.rst b/Documentation/ref/ovs-sim.1.rst
index 51a415fba..4382598e1 100644
--- a/Documentation/ref/ovs-sim.1.rst
+++ b/Documentation/ref/ovs-sim.1.rst
@@ -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
diff --git a/Documentation/tutorials/faucet.rst b/Documentation/tutorials/faucet.rst
index aaaffe769..9696dfd02 100644
--- a/Documentation/tutorials/faucet.rst
+++ b/Documentation/tutorials/faucet.rst
@@ -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::
diff --git a/Documentation/tutorials/ovs-advanced.rst b/Documentation/tutorials/ovs-advanced.rst
index db8a53ebc..fa9fdc7bf 100644
--- a/Documentation/tutorials/ovs-advanced.rst
+++ b/Documentation/tutorials/ovs-advanced.rst
@@ -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 484c6dc3d..7f6589a46 100644
--- 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
diff --git a/Vagrantfile b/Vagrantfile
index 28e9219b8..0192f66ea 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -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
diff --git a/debian/copyright.in b/debian/copyright.in
index a15f4ddbf..9ad00340f 100644
--- a/debian/copyright.in
+++ b/debian/copyright.in
@@ -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
diff --git a/debian/openvswitch-switch.README.Debian b/debian/openvswitch-switch.README.Debian
index b38662be0..7556844a1 100644
--- a/debian/openvswitch-switch.README.Debian
+++ b/debian/openvswitch-switch.README.Debian
@@ -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.
diff --git a/debian/openvswitch-switch.init b/debian/openvswitch-switch.init
index 5c7c08b3a..e4bc692e5 100755
--- a/debian/openvswitch-switch.init
+++ b/debian/openvswitch-switch.init
@@ -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
;;
diff --git a/debian/openvswitch-switch.logrotate b/debian/openvswitch-switch.logrotate
index 802d36566..1ccf6f507 100644
--- a/debian/openvswitch-switch.logrotate
+++ b/debian/openvswitch-switch.logrotate
@@ -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
}
diff --git a/debian/ovn-central.postinst b/debian/ovn-central.postinst
index bdf5c4a8b..10e07ece4 100755
--- a/debian/ovn-central.postinst
+++ b/debian/ovn-central.postinst
@@ -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)
diff --git a/debian/ovn-host.postinst b/debian/ovn-host.postinst
index 05e80ad1f..4b3edeb75 100755
--- a/debian/ovn-host.postinst
+++ b/debian/ovn-host.postinst
@@ -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)
diff --git a/include/openvswitch/rconn.h b/include/openvswitch/rconn.h
index 176c5f641..5dc988af1 100644
--- a/include/openvswitch/rconn.h
+++ b/include/openvswitch/rconn.h
@@ -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);
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index 818b184ee..9390fff68 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -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);
diff --git a/lib/dpif.c b/lib/dpif.c
index 3c7d3b8a2..f6a7f6a72 100644
--- a/lib/dpif.c
+++ b/lib/dpif.c
@@ -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:
diff --git a/lib/meta-flow.xml b/lib/meta-flow.xml
index 9ad15b3d9..0b5c1d008 100644
--- a/lib/meta-flow.xml
+++ b/lib/meta-flow.xml
@@ -143,14 +143,14 @@
<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>
@@ -159,14 +159,14 @@
</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>
@@ -186,17 +186,17 @@
<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>
@@ -211,13 +211,13 @@
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>
@@ -225,14 +225,14 @@
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">
@@ -241,8 +241,8 @@
</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">
@@ -256,7 +256,7 @@
</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>
diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index 68e382471..05a39c22b 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -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);
}
diff --git a/ofproto/ofproto-dpif-ipfix.c b/ofproto/ofproto-dpif-ipfix.c
index 4d9fe787f..402980678 100644
--- a/ofproto/ofproto-dpif-ipfix.c
+++ b/ofproto/ofproto-dpif-ipfix.c
@@ -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);
}
diff --git a/ofproto/ofproto-dpif-sflow.c b/ofproto/ofproto-dpif-sflow.c
index bbec30e02..d17d7a8be 100644
--- a/ofproto/ofproto-dpif-sflow.c
+++ b/ofproto/ofproto-dpif-sflow.c
@@ -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. */
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index c990d8a67..c02a0327a 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -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);
}
diff --git a/ovn/utilities/ovn-detrace.in b/ovn/utilities/ovn-detrace.in
index e2e5b4c2f..c842adc32 100755
--- a/ovn/utilities/ovn-detrace.in
+++ b/ovn/utilities/ovn-detrace.in
@@ -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()
diff --git a/ovsdb/ovsdb-tool.c b/ovsdb/ovsdb-tool.c
index 95a777241..5f2eac413 100644
--- a/ovsdb/ovsdb-tool.c
+++ b/ovsdb/ovsdb-tool.c
@@ -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);
}
diff --git a/rhel/etc_init.d_openvswitch b/rhel/etc_init.d_openvswitch
index caf24cce8..20d556803 100755
--- a/rhel/etc_init.d_openvswitch
+++ b/rhel/etc_init.d_openvswitch
@@ -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
"$@"
diff --git a/rhel/etc_sysconfig_network-scripts_ifdown-ovs b/rhel/etc_sysconfig_network-scripts_ifdown-ovs
index 8c9f3694c..63d048b22 100755
--- a/rhel/etc_sysconfig_network-scripts_ifdown-ovs
+++ b/rhel/etc_sysconfig_network-scripts_ifdown-ovs
@@ -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
diff --git a/rhel/etc_sysconfig_network-scripts_ifup-ovs b/rhel/etc_sysconfig_network-scripts_ifup-ovs
index 1c65f13e6..b01461cc4 100755
--- a/rhel/etc_sysconfig_network-scripts_ifup-ovs
+++ b/rhel/etc_sysconfig_network-scripts_ifup-ovs
@@ -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
diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in
index 2ef0b5754..9be16ffe7 100644
--- a/rhel/openvswitch-fedora.spec.in
+++ b/rhel/openvswitch-fedora.spec.in
@@ -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
diff --git a/rhel/openvswitch-kmod-rhel6.spec.in b/rhel/openvswitch-kmod-rhel6.spec.in
index c6e6db5d0..daa3dade1 100644
--- a/rhel/openvswitch-kmod-rhel6.spec.in
+++ b/rhel/openvswitch-kmod-rhel6.spec.in
@@ -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
diff --git a/tests/bfd.at b/tests/bfd.at
index 97da74217..7af7be54a 100644
--- a/tests/bfd.at
+++ b/tests/bfd.at
@@ -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.*//
diff --git a/tests/cfm.at b/tests/cfm.at
index 8c8bd20ad..053be5d56 100644
--- a/tests/cfm.at
+++ b/tests/cfm.at
@@ -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.*//
diff --git a/tests/classifier.at b/tests/classifier.at
index 2362948e3..86f872db6 100644
--- a/tests/classifier.at
+++ b/tests/classifier.at
@@ -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
diff --git a/tests/dpif-netdev.at b/tests/dpif-netdev.at
index c6f6a6695..fff395d56 100644
--- a/tests/dpif-netdev.at
+++ b/tests/dpif-netdev.at
@@ -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
}
diff --git a/tests/interface-reconfigure.at b/tests/interface-reconfigure.at
index f3914a4f4..035b00956 100644
--- a/tests/interface-reconfigure.at
+++ b/tests/interface-reconfigure.at
@@ -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>
diff --git a/tests/lacp.at b/tests/lacp.at
index ee8100858..a7f75ac67 100644
--- a/tests/lacp.at
+++ b/tests/lacp.at
@@ -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.*//
diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at
index 50e827e8e..d7989259b 100644
--- a/tests/ofproto-dpif.at
+++ b/tests/ofproto-dpif.at
@@ -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])
diff --git a/tests/ofproto-macros.at b/tests/ofproto-macros.at
index 8aa69ee95..7388a20a2 100644
--- a/tests/ofproto-macros.at
+++ b/tests/ofproto-macros.at
@@ -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'])])])
diff --git a/tests/ofproto.at b/tests/ofproto.at
index 26a6ff698..9819bc577 100644
--- a/tests/ofproto.at
+++ b/tests/ofproto.at
@@ -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"])
diff --git a/tests/ovn.at b/tests/ovn.at
index f12c24c17..155150e02 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -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
}
diff --git a/tests/ovs-macros.at b/tests/ovs-macros.at
index f3ab3548a..677eea753 100644
--- a/tests/ovs-macros.at
+++ b/tests/ovs-macros.at
@@ -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
]
diff --git a/tests/ovs-ofctl.at b/tests/ovs-ofctl.at
index 72e845237..06597d7b5 100644
--- a/tests/ovs-ofctl.at
+++ b/tests/ovs-ofctl.at
@@ -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])
diff --git a/tests/ovs-router.at b/tests/ovs-router.at
index 843776257..6dacc2954 100644
--- a/tests/ovs-router.at
+++ b/tests/ovs-router.at
@@ -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
diff --git a/tests/ovsdb-client.at b/tests/ovsdb-client.at
index 467175f1a..8d777a027 100644
--- a/tests/ovsdb-client.at
+++ b/tests/ovsdb-client.at
@@ -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 '
diff --git a/tests/ovsdb-cluster.at b/tests/ovsdb-cluster.at
index b23adc6a5..1c4149155 100644
--- a/tests/ovsdb-cluster.at
+++ b/tests/ovsdb-cluster.at
@@ -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.
diff --git a/tests/ovsdb-condition.at b/tests/ovsdb-condition.at
index e7182c558..4b613e5f6 100644
--- a/tests/ovsdb-condition.at
+++ b/tests/ovsdb-condition.at
@@ -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]]]]' \
diff --git a/tests/ovsdb-idl.at b/tests/ovsdb-idl.at
index 9caa02aad..cff08b183 100644
--- a/tests/ovsdb-idl.at
+++ b/tests/ovsdb-idl.at
@@ -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>"]}]}
diff --git a/tests/ovsdb-log.at b/tests/ovsdb-log.at
index 4577558df..00a244ba4 100644
--- a/tests/ovsdb-log.at
+++ b/tests/ovsdb-log.at
@@ -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
diff --git a/tests/ovsdb-monitor.at b/tests/ovsdb-monitor.at
index c06dbb272..5458d422e 100644
--- a/tests/ovsdb-monitor.at
+++ b/tests/ovsdb-monitor.at
@@ -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],
diff --git a/tests/ovsdb-mutation.at b/tests/ovsdb-mutation.at
index fc898b56d..2981c5393 100644
--- a/tests/ovsdb-mutation.at
+++ b/tests/ovsdb-mutation.at
@@ -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]]' \
diff --git a/tests/ovsdb-query.at b/tests/ovsdb-query.at
index 2c2b648d8..0814fda2a 100644
--- a/tests/ovsdb-query.at
+++ b/tests/ovsdb-query.at
@@ -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,
diff --git a/tests/ovsdb-row.at b/tests/ovsdb-row.at
index 0b2ae77b1..891f95329 100644
--- a/tests/ovsdb-row.at
+++ b/tests/ovsdb-row.at
@@ -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]]]}]' \
diff --git a/tests/ovsdb-schema.at b/tests/ovsdb-schema.at
index 9957ebdd4..d606d718d 100644
--- a/tests/ovsdb-schema.at
+++ b/tests/ovsdb-schema.at
@@ -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
diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at
index cbbccab5e..edffae1bc 100644
--- a/tests/ovsdb-server.at
+++ b/tests/ovsdb-server.at
@@ -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])
diff --git a/tests/ovsdb-tool.at b/tests/ovsdb-tool.at
index a27a239ea..359d1f063 100644
--- a/tests/ovsdb-tool.at
+++ b/tests/ovsdb-tool.at
@@ -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>"]},{}]
diff --git a/tests/pmd.at b/tests/pmd.at
index 0c8829f49..f3fac6385 100644
--- a/tests/pmd.at
+++ b/tests/pmd.at
@@ -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
diff --git a/tests/run-oftest b/tests/run-oftest
index d5701d6c1..63d07c652 100755
--- a/tests/run-oftest
+++ b/tests/run-oftest
@@ -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
diff --git a/tests/run-ryu b/tests/run-ryu
index 2aea14db5..fedf73d94 100755
--- a/tests/run-ryu
+++ b/tests/run-ryu
@@ -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
diff --git a/tests/test-lib.c b/tests/test-lib.c
index 059dd04ba..bcb5bb782 100644
--- a/tests/test-lib.c
+++ b/tests/test-lib.c
@@ -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";
diff --git a/tests/test-sflow.c b/tests/test-sflow.c
index 82e950273..460d4d6c5 100644
--- a/tests/test-sflow.c
+++ b/tests/test-sflow.c
@@ -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;
diff --git a/tests/tunnel.at b/tests/tunnel.at
index c8fc2f7ac..ae379db12 100644
--- a/tests/tunnel.at
+++ b/tests/tunnel.at
@@ -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])
diff --git a/tutorial/ovs-sandbox b/tutorial/ovs-sandbox
index bea060479..781bedbc6 100755
--- a/tutorial/ovs-sandbox
+++ b/tutorial/ovs-sandbox
@@ -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
diff --git a/utilities/bugtool/ovs-bugtool-tc-class-show b/utilities/bugtool/ovs-bugtool-tc-class-show
index 5e6ae0a1b..904789f11 100755
--- a/utilities/bugtool/ovs-bugtool-tc-class-show
+++ b/utilities/bugtool/ovs-bugtool-tc-class-show
@@ -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
diff --git a/utilities/nlmon.c b/utilities/nlmon.c
index 448b5eb5d..32aa948c6 100644
--- a/utilities/nlmon.c
+++ b/utilities/nlmon.c
@@ -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);
}
}
diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
index ef06dd967..79b8fa853 100755
--- a/utilities/ovs-ctl.in
+++ b/utilities/ovs-ctl.in
@@ -539,7 +539,7 @@ case $command in
done
;;
force-reload-kmod)
- force_reload_kmod
+ force_reload_kmod
;;
load-kmod)
insert_mod_if_required
diff --git a/utilities/ovs-sim.in b/utilities/ovs-sim.in
index 24c1da0a9..72436c089 100755
--- a/utilities/ovs-sim.in
+++ b/utilities/ovs-sim.in
@@ -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
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index 071b32477..d383b287e 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -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));
}
}
diff --git a/vswitchd/vswitch.ovsschema b/vswitchd/vswitch.ovsschema
index 80f17e89b..1e4e342dc 100644
--- a/vswitchd/vswitch.ovsschema
+++ b/vswitchd/vswitch.ovsschema
@@ -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": {
@@ -106,7 +106,7 @@
"OpenFlow14",
"OpenFlow15",
"OpenFlow16"]]},
- "min": 0, "max": "unlimited"}},
+ "min": 0, "max": "unlimited"}},
"fail_mode": {
"type": {"key": {"type": "string",
"enum": ["set", ["standalone", "secure"]]},
@@ -363,16 +363,16 @@
"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": {
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index 1e27a0220..e432ebef2 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -2146,7 +2146,7 @@
</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">
diff --git a/xenserver/openvswitch-xen.spec.in b/xenserver/openvswitch-xen.spec.in
index c1fbcc75e..ba3580836 100644
--- a/xenserver/openvswitch-xen.spec.in
+++ b/xenserver/openvswitch-xen.spec.in
@@ -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