@@ -14,9 +14,16 @@ Remote MPID $7
1414])
1515])
1616
17+ m4_define([CFM_VSCTL_LIST_IFACE], [
18+ AT_CHECK([ovs-vsctl list interface $1 | sed -n '/$2/p'],[0],
19+ [dnl
20+ $3
21+ ])
22+ ])
23+
1724# test cfm under demand mode.
1825AT_SETUP([cfm - demand mode])
19- #Create 2 bridges connected by patch ports and enable BFD
26+ #Create 2 bridges connected by patch ports and enable cfm
2027OVS_VSWITCHD_START([add-br br1 -- \
2128 set bridge br1 datapath-type=dummy \
2229 other-config:hwaddr=aa:55:aa:56:00:00 -- \
5562
5663OVS_VSWITCHD_STOP
5764AT_CLEANUP
65+
66+ # test cfm_flap_count.
67+ AT_SETUP([cfm - flap_count])
68+ #Create 2 bridges connected by patch ports and enable cfm
69+ OVS_VSWITCHD_START([add-br br1 -- \
70+ set bridge br1 datapath-type=dummy \
71+ other-config:hwaddr=aa:55:aa:56:00:00 -- \
72+ add-port br1 p1 -- set Interface p1 type=patch \
73+ options:peer=p0 -- \
74+ add-port br0 p0 -- set Interface p0 type=patch \
75+ options:peer=p1 -- \
76+ set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \
77+ set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true])
78+
79+ ovs-appctl time/stop
80+
81+ # wait for a while to stablize cfm.
82+ for i in `seq 0 100`; do ovs-appctl time/warp 100; done
83+ CFM_CHECK_EXTENDED([p0], [1], [100], [up], [up], [100ms], [2], [up])
84+ CFM_CHECK_EXTENDED([p1], [2], [100], [up], [up], [100ms], [1], [up])
85+
86+ # turn cfm on p1 off, should increment the cfm_flap_count on p1.
87+ AT_CHECK([ovs-vsctl remove interface p1 cfm_mpid 2])
88+ for i in `seq 0 10`; do ovs-appctl time/warp 100; done
89+ CFM_VSCTL_LIST_IFACE([p0], [cfm_flap_count], [cfm_flap_count : 1])
90+ CFM_VSCTL_LIST_IFACE([p1], [cfm_flap_count], [cfm_flap_count : [[]]])
91+
92+ # turn cfm on p1 on again, should increment the cfm_flap_count on p1.
93+ AT_CHECK([ovs-vsctl set interface p1 cfm_mpid=2])
94+ for i in `seq 0 10`; do ovs-appctl time/warp 100; done
95+ CFM_VSCTL_LIST_IFACE([p0], [cfm_flap_count], [cfm_flap_count : 2])
96+ CFM_VSCTL_LIST_IFACE([p1], [cfm_flap_count], [cfm_flap_count : 0])
97+
98+ OVS_VSWITCHD_STOP
99+ AT_CLEANUP
0 commit comments