X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Ftunnel.at;h=2369bd27502eaf89c25e7104f06e53b4bd8d5a50;hb=8d71683b7632b5b621dd21418bf33ff90865b4e0;hp=55fd5b3c7278e25405ad1e9ad2f8f5ed238154b9;hpb=67680b012be30d9c26eab999b83b08c6eb32dbd2;p=sliver-openvswitch.git diff --git a/tests/tunnel.at b/tests/tunnel.at index 55fd5b3c7..2369bd275 100644 --- a/tests/tunnel.at +++ b/tests/tunnel.at @@ -16,8 +16,9 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) AT_CHECK([ovs-appctl dpif/show], [0], [dnl br0 (dummy@ovs-dummy): - lookups: hit:0 missed:0 lost:0 - flows: 0 + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min br0 65534/100: (dummy) p1 1/1: (gre: remote_ip=1.1.1.1) p2 2/1: (gre: local_ip=2.2.2.2, remote_ip=1.1.1.1) @@ -42,8 +43,9 @@ AT_CHECK([ovs-vsctl set Interface p2 type=gre options:local_ip=2.2.2.3 \ -- set Interface p3 type=gre64]) AT_CHECK([ovs-appctl dpif/show], [0], [dnl br0 (dummy@ovs-dummy): - lookups: hit:0 missed:0 lost:0 - flows: 0 + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min br0 65534/100: (dummy) p1 1/1: (gre: remote_ip=1.1.1.1) p2 2/1: (gre: csum=true, df_default=false, local_ip=2.2.2.3, remote_ip=1.1.1.1, ttl=1) @@ -80,18 +82,38 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) AT_CHECK([ovs-appctl dpif/show], [0], [dnl br0 (dummy@ovs-dummy): - lookups: hit:0 missed:0 lost:0 - flows: 0 + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min br0 65534/100: (dummy) p1 1/1: (gre: remote_ip=1.1.1.1) p2 2/2: (dummy) ]) -AT_CHECK([ovs-appctl ofproto/trace br0 'tunnel(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=1,ttl=64,frag=no),tcp(src=8,dst=9)'], [0], [stdout]) +dnl Tunnel CE and encapsulated packet CE +AT_CHECK([ovs-appctl ofproto/trace br0 'tunnel(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=3,ttl=64,frag=no),tcp(src=8,dst=9)'], [0], [stdout]) AT_CHECK([tail -1 stdout], [0], [Datapath actions: 2 ]) -OVS_VSWITCHD_STOP + +dnl Tunnel CE and encapsulated packet ECT(1) +AT_CHECK([ovs-appctl ofproto/trace br0 'tunnel(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=1,ttl=64,frag=no),tcp(src=8,dst=9)'], [0], [stdout]) +AT_CHECK([tail -1 stdout], [0], + [Datapath actions: set(ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0x3,ttl=64,frag=no)),2 +]) + +dnl Tunnel CE and encapsulated packet ECT(2) +AT_CHECK([ovs-appctl ofproto/trace br0 'tunnel(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=2,ttl=64,frag=no),tcp(src=8,dst=9)'], [0], [stdout]) +AT_CHECK([tail -1 stdout], [0], + [Datapath actions: set(ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0x3,ttl=64,frag=no)),2 +]) + +dnl Tunnel CE and encapsulated packet Non-ECT +AT_CHECK([ovs-appctl ofproto/trace br0 'tunnel(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'], [0], [stdout]) +AT_CHECK([tail -1 stdout], [0], + [Datapath actions: drop +]) +OVS_VSWITCHD_STOP(["/dropping tunnel packet marked ECN CE but is not ECN capable/d"]) AT_CLEANUP AT_SETUP([tunnel - output]) @@ -108,8 +130,9 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) AT_CHECK([ovs-appctl dpif/show], [0], [dnl br0 (dummy@ovs-dummy): - lookups: hit:0 missed:0 lost:0 - flows: 0 + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min br0 65534/100: (dummy) p1 1/1: (gre: key=5, local_ip=2.2.2.2, remote_ip=1.1.1.1) p2 2/2: (dummy) @@ -143,8 +166,9 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) AT_CHECK([ovs-appctl dpif/show], [0], [dnl br0 (dummy@ovs-dummy): - lookups: hit:0 missed:0 lost:0 - flows: 0 + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min br0 65534/100: (dummy) p1 1/1: (gre: remote_ip=1.1.1.1, tos=inherit, ttl=inherit) p2 2/2: (dummy) @@ -188,8 +212,9 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) AT_CHECK([ovs-appctl dpif/show], [0], [dnl br0 (dummy@ovs-dummy): - lookups: hit:0 missed:0 lost:0 - flows: 0 + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min br0 65534/100: (dummy) p1 1/1: (gre: key=flow, remote_ip=1.1.1.1) p2 2/1: (gre: key=flow, remote_ip=2.2.2.2) @@ -223,8 +248,9 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) AT_CHECK([ovs-appctl dpif/show], [0], [dnl br0 (dummy@ovs-dummy): - lookups: hit:0 missed:0 lost:0 - flows: 0 + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min br0 65534/100: (dummy) p1 1/1: (gre: key=1, remote_ip=1.1.1.1) p2 2/1: (gre: in_key=2, out_key=3, remote_ip=1.1.1.1) @@ -278,8 +304,9 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) AT_CHECK([ovs-appctl dpif/show], [0], [dnl br0 (dummy@ovs-dummy): - lookups: hit:0 missed:0 lost:0 - flows: 0 + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min br0 65534/100: (dummy) p1 1/1: (gre: key=flow, remote_ip=1.1.1.1) p2 2/1: (gre: key=3, remote_ip=3.3.3.3) @@ -310,3 +337,105 @@ AT_CHECK([tail -1 stdout], [0], [dnl OVS_VSWITCHD_STOP AT_CLEANUP + +AT_SETUP([tunnel - VXLAN]) +OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=vxlan \ + options:remote_ip=1.1.1.1 ofport_request=1]) + +AT_CHECK([ovs-appctl dpif/show], [0], [dnl +br0 (dummy@ovs-dummy): + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min + br0 65534/100: (dummy) + p1 1/1: (vxlan: remote_ip=1.1.1.1) +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([tunnel - LISP]) +OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=lisp \ + options:remote_ip=1.1.1.1 ofport_request=1]) + +AT_CHECK([ovs-appctl dpif/show], [0], [dnl +br0 (dummy@ovs-dummy): + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min + br0 65534/100: (dummy) + p1 1/1: (lisp: remote_ip=1.1.1.1) +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([tunnel - different VXLAN UDP port]) +OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=vxlan \ + options:remote_ip=1.1.1.1 ofport_request=1 options:dst_port=4341]) + +AT_CHECK([ovs-appctl dpif/show], [0], [dnl +br0 (dummy@ovs-dummy): + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min + br0 65534/100: (dummy) + p1 1/1: (vxlan: dst_port=4341, remote_ip=1.1.1.1) +]) + +dnl change UDP port + +AT_CHECK([ovs-vsctl -- set Interface p1 options:dst_port=5000]) + +AT_CHECK([ovs-appctl dpif/show], [0], [dnl +br0 (dummy@ovs-dummy): + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min + br0 65534/100: (dummy) + p1 1/2: (vxlan: dst_port=5000, remote_ip=1.1.1.1) +]) + +dnl change UDP port to default + +AT_CHECK([ovs-vsctl -- set Interface p1 options:dst_port=4789]) + +AT_CHECK([ovs-appctl dpif/show], [0], [dnl +br0 (dummy@ovs-dummy): + lookups: hit:0 missed:0 + flows: cur: 0, avg: 0.000, max: 0, life span: 0(ms) + overall avg: add rate: 0.000/min, del rate: 0.000/min + br0 65534/100: (dummy) + p1 1/1: (vxlan: remote_ip=1.1.1.1) +]) +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([ofproto-dpif - set_field - tun_src/tun_dst/tun_id]) +OVS_VSWITCHD_START([dnl + add-port br0 p1 -- set Interface p1 type=gre options:key=flow \ + options:remote_ip=1.1.1.1 ofport_request=1 \ + -- add-port br0 p2 -- set Interface p2 type=gre options:key=flow \ + options:remote_ip=flow ofport_request=2 \ + -- add-port br0 p3 -- set Interface p3 type=gre options:key=flow \ + options:remote_ip=flow options:local_ip=flow ofport_request=3 \ + -- add-port br0 p4 -- set Interface p4 type=gre options:key=3 \ + options:remote_ip=flow ofport_request=4 \ + -- add-port br0 p5 -- set Interface p5 type=gre options:key=flow \ + options:remote_ip=5.5.5.5 ofport_request=5]) +ADD_OF_PORTS([br0], [90]) +AT_DATA([flows.txt], [dnl +in_port=90 actions=resubmit:1,resubmit:2,resubmit:3,resubmit:4,resubmit:5 +in_port=1 actions=set_field:42->tun_id,output:1 +in_port=2 actions=set_field:3.3.3.3->tun_dst,output:2 +in_port=3 actions=set_field:1.1.1.1->tun_src,set_field:4.4.4.4->tun_dst,output:3 +in_port=4 actions=set_field:2.2.2.2->tun_dst,output:4 +in_port=5 actions=set_field:5->tun_id +]) +AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) +AT_CHECK([ovs-appctl ofproto/trace br0 'in_port(90),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'], [0], [stdout]) +AT_CHECK([tail -1 stdout], [0], + [Datapath actions: set(tunnel(tun_id=0x2a,src=0.0.0.0,dst=1.1.1.1,tos=0x0,ttl=64,flags(df,key))),1,set(tunnel(tun_id=0x2a,src=0.0.0.0,dst=3.3.3.3,tos=0x0,ttl=64,flags(df,key))),1,set(tunnel(tun_id=0x2a,src=1.1.1.1,dst=4.4.4.4,tos=0x0,ttl=64,flags(df,key))),1,set(tunnel(tun_id=0x3,src=0.0.0.0,dst=2.2.2.2,tos=0x0,ttl=64,flags(df,key))),1 +]) +OVS_VSWITCHD_STOP +AT_CLEANUP