X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Flearn.at;h=a97017181a7b2ac123cc27d33bc305d155d73b77;hb=0e553d9c1063be047824c6f1afce9ffc6db6c671;hp=943a7c88b43514ac779e3470a61c4d4ee31274d5;hpb=12113c394a9873aa4f54da750d9fb4ff89ccb254;p=sliver-openvswitch.git diff --git a/tests/learn.at b/tests/learn.at index 943a7c88b..a97017181 100644 --- a/tests/learn.at +++ b/tests/learn.at @@ -4,12 +4,12 @@ AT_SETUP([learning action - parsing and formatting]) AT_DATA([flows.txt], [[ actions=learn() actions=learn(NXM_OF_VLAN_TCI[0..11], NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], output:NXM_OF_IN_PORT[], load:10->NXM_NX_REG0[5..10]) -actions=learn(table=1,idle_timeout=1, hard_timeout=2, priority=10, cookie=0xfedcba9876543210, in_port=99,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG1[16..31]) +actions=learn(table=1,idle_timeout=10, hard_timeout=20, fin_idle_timeout=5, fin_hard_timeout=10, priority=10, cookie=0xfedcba9876543210, in_port=99,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG1[16..31]) ]]) AT_CHECK([ovs-ofctl parse-flows flows.txt], [0], [[OFPT_FLOW_MOD (xid=0x1): ADD actions=learn(table=1) OFPT_FLOW_MOD (xid=0x2): ADD actions=learn(table=1,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[],load:0x000a->NXM_NX_REG0[5..10]) -OFPT_FLOW_MOD (xid=0x3): ADD actions=learn(table=1,idle_timeout=1,hard_timeout=2,priority=10,cookie=0xfedcba9876543210,in_port=99,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG1[16..31]) +OFPT_FLOW_MOD (xid=0x3): ADD actions=learn(table=1,idle_timeout=10,hard_timeout=20,fin_idle_timeout=5,fin_hard_timeout=10,priority=10,cookie=0xfedcba9876543210,in_port=99,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG1[16..31]) ]]) AT_CLEANUP @@ -106,3 +106,17 @@ NXST_FLOW reply: ]) OVS_VSWITCHD_STOP AT_CLEANUP + +AT_SETUP([learning action - fin_timeout feature]) +# This is a totally artificial use of the "learn" action. The only purpose +# is to check that specifying fin_idle_timeout or fin_hard_timeout causes +# a corresponding fin_timeout action to end up in the learned flows. +OVS_VSWITCHD_START +AT_CHECK([[ovs-ofctl add-flow br0 'actions=learn(fin_hard_timeout=10, fin_idle_timeout=5, NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], output:NXM_OF_IN_PORT[])']]) +AT_CHECK([ovs-appctl ofproto/trace br0 'in_port(1),eth(src=50:54:00:00:00:05,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)' -generate], [0], [ignore]) +AT_CHECK([ovs-ofctl dump-flows br0 table=1 | ofctl_strip], [0], +[NXST_FLOW reply: + table=1, dl_dst=50:54:00:00:00:05 actions=fin_timeout(idle_timeout=5,hard_timeout=10),output:1 +]) +OVS_VSWITCHD_STOP +AT_CLEANUP