Roadmap¶
V1.0-1.5: http://speed.cis.nctu.edu.tw/~ydlin/miscpub/indep_frank.pdf (Page 5)
Classifiers¶
V1.0-1.4: http://flowgrammable.org/sdn/openflow/classifiers/
dl_type = 0x0806 # ARP, Optional: switch must indicate support in FeatureRes)
dl_type = 0x0800 # IPv4
dl_type = 0x88cc # Link Layer Discovery Protocol (LLDP)
nw_proto = 1 # ICMPv4
nw_proto = 6 # TCP
nw_proto: 17 # UDP
tp_src: 68 # Bootpc, UDP 0.0.0.0:68 -> 255.255.255.255:67
tp_dst: 67 # Bootps, 192.168.1.1:67 -> 255.255.255.255:68
vlan_tci= # TCI (tag control information), 2-byte
Tracing¶
http://docs.openvswitch.org/en/latest/topics/tracing/
https://overlaid.net/2017/02/15/openflow-basic-concepts-and-theory/
ovs-ofctl dump-flows br0¶
name : "vnet0"
ofport : 1
admin_state : up
statistics : {collisions=0, rx_bytes=36595, rx_crc_err=0, rx_dropped=0, rx_errors=0, rx_frame_err=0, rx_over_err=0, rx_packets=145, tx_bytes=1216, tx_dropped=0, tx_errors=0, tx_packets=16}
mac_in_use : "fe:54:00:2c:f2:9f"
name : "br0"
ofport : 65534
admin_state : down
statistics : {collisions=0, rx_bytes=0, rx_crc_err=0, rx_dropped=0, rx_errors=0, rx_frame_err=0, rx_over_err=0, rx_packets=0, tx_bytes=0, tx_dropped=0, tx_errors=0, tx_packets=0}
mac_in_use : "2a:18:94:e4:38:49"
http://openvswitch.org/support/dist-docs/ovs-ofctl.8.txt
resubmit:port
resubmit([port],[table])
resubmit([port],[table],connection tracking state)
strip_vlan
Strips the VLAN tag from a packet if it is present.
NXST_FLOW reply (xid=0x4):
Table 0: Port-based ACLs
..., table=0, n_packets=0, n_bytes=0, idle_age=5659, priority=9099,in_port=2 actions=resubmit(,1)
..., table=0, n_packets=0, n_bytes=0, idle_age=5659, priority=9099,in_port=3 actions=resubmit(,1)
..., table=0, n_packets=132, n_bytes=33998, idle_age=0, priority=9099,in_port=1 actions=resubmit(,1)
..., table=0, n_packets=0, n_bytes=0, idle_age=5659, priority=0 actions=drop
Table 1: Ingress VLAN processing
..., table=1, n_packets=0, n_bytes=0, idle_age=5659, priority=9099,dl_dst=01:80:c2:00:00:00 actions=drop
..., table=1, n_packets=0, n_bytes=0, idle_age=5659, priority=9099,dl_dst=01:00:0c:cc:cc:cd actions=drop
..., table=1, n_packets=0, n_bytes=0, idle_age=5659, priority=9099,dl_type=0x88cc actions=drop
..., table=1, n_packets=0, n_bytes=0, idle_age=5659, priority=9000,in_port=2,vlan_tci=0x0000/0x1fff actions=mod_vlan_vid:200,resubmit(,3)
..., table=1, n_packets=0, n_bytes=0, idle_age=5659, priority=9000,in_port=3,vlan_tci=0x0000/0x1fff actions=mod_vlan_vid:200,resubmit(,3)
..., table=1, n_packets=132, n_bytes=33998, idle_age=0, priority=9000,in_port=1,vlan_tci=0x0000/0x1fff actions=mod_vlan_vid:100,resubmit(,3)
..., table=1, n_packets=0, n_bytes=0, idle_age=5659, priority=0 actions=drop
Table 2: VLAN-based ACLs
..., table=2, n_packets=0, n_bytes=0, idle_age=5659, priority=0 actions=drop
Table 3: Ingress L2 processing, MAC learning
..., table=3, n_packets=0, n_bytes=0, idle_age=5659, priority=9099,dl_src=ff:ff:ff:ff:ff:ff actions=drop
..., table=3, n_packets=0, n_bytes=0, idle_age=5659, priority=9001,dl_src=0e:00:00:00:00:01 actions=drop
..., table=3, n_packets=3, n_bytes=1005, hard_timeout=305, idle_age=0, priority=9098,in_port=1,dl_vlan=100,dl_src=52:54:00:2c:f2:9f actions=resubmit(,7)
..., table=3, n_packets=0, n_bytes=0, idle_age=5659, priority=0 actions=drop
..., table=3, n_packets=19, n_bytes=5546, idle_age=193, priority=9000 actions=CONTROLLER:96,resubmit(,7)
Table 4: L3 forwarding for IPv4
..., table=4, n_packets=0, n_bytes=0, idle_age=5659, priority=0 actions=drop
Table 5: L3 forwarding for IPv6
..., table=5, n_packets=0, n_bytes=0, idle_age=5659, priority=0 actions=drop
Table 6: Virtual IP processing, e.g. for router IP addresses implemented by Faucet
..., table=6, n_packets=0, n_bytes=0, idle_age=5659, priority=0 actions=drop
Table 7: Egress L2 processing
..., table=7, n_packets=0, n_bytes=0, idle_timeout=305, idle_age=193, priority=9099,dl_vlan=100,dl_dst=52:54:00:2c:f2:9f actions=strip_vlan,output:1
..., table=7, n_packets=0, n_bytes=0, idle_age=5659, priority=0 actions=drop
..., table=7, n_packets=132, n_bytes=33998, idle_age=0, priority=9000 actions=resubmit(,8)
Table 8: Flooding
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=9008,in_port=2,dl_vlan=200,dl_dst=ff:ff:ff:ff:ff:ff actions=strip_vlan,output:3
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=9008,in_port=3,dl_vlan=200,dl_dst=ff:ff:ff:ff:ff:ff actions=strip_vlan,output:2
..., table=8, n_packets=106, n_bytes=31994, idle_age=0, priority=9008,in_port=1,dl_vlan=100,dl_dst=ff:ff:ff:ff:ff:ff actions=strip_vlan
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=9006,in_port=2,dl_vlan=200,dl_dst=33:33:00:00:00:00/ff:ff:00:00:00:00 actions=strip_vlan,output:3
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=9006,in_port=3,dl_vlan=200,dl_dst=33:33:00:00:00:00/ff:ff:00:00:00:00 actions=strip_vlan,output:2
..., table=8, n_packets=21, n_bytes=1686, idle_age=514, priority=9006,in_port=1,dl_vlan=100,dl_dst=33:33:00:00:00:00/ff:ff:00:00:00:00 actions=strip_vlan
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=9002,in_port=2,dl_vlan=200,dl_dst=01:80:c2:00:00:00/ff:ff:ff:00:00:00 actions=strip_vlan,output:3
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=9002,in_port=3,dl_vlan=200,dl_dst=01:80:c2:00:00:00/ff:ff:ff:00:00:00 actions=strip_vlan,output:2
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=9004,in_port=2,dl_vlan=200,dl_dst=01:00:5e:00:00:00/ff:ff:ff:00:00:00 actions=strip_vlan,output:3
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=9004,in_port=3,dl_vlan=200,dl_dst=01:00:5e:00:00:00/ff:ff:ff:00:00:00 actions=strip_vlan,output:2
..., table=8, n_packets=0, n_bytes=0, idle_age=5647, priority=9002,in_port=1,dl_vlan=100,dl_dst=01:80:c2:00:00:00/ff:ff:ff:00:00:00 actions=strip_vlan
..., table=8, n_packets=5, n_bytes=318, idle_age=1175, priority=9004,in_port=1,dl_vlan=100,dl_dst=01:00:5e:00:00:00/ff:ff:ff:00:00:00 actions=strip_vlan
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=9000,in_port=2,dl_vlan=200 actions=strip_vlan,output:3
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=9000,in_port=3,dl_vlan=200 actions=strip_vlan,output:2
..., table=8, n_packets=0, n_bytes=0, idle_age=5647, priority=9000,in_port=1,dl_vlan=100 actions=strip_vlan
..., table=8, n_packets=0, n_bytes=0, idle_age=5659, priority=0 actions=drop