summaryrefslogtreecommitdiff
path: root/tests/dpctl.at
blob: d2f1046f8b526f7a00281448a4d833f0eb1845b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
AT_BANNER([dpctl])

AT_SETUP([dpctl - add-dp del-dp])
OVS_VSWITCHD_START
AT_CHECK([ovs-appctl dpctl/add-dp dummy@br0])
AT_CHECK([ovs-appctl dpctl/add-dp dummy@br0], [2], [],
  [ovs-vswitchd: add_dp (File exists)
ovs-appctl: ovs-vswitchd: server returned an error
])
AT_CHECK([ovs-appctl dpctl/del-dp dummy@br0])
AT_CHECK([ovs-appctl dpctl/del-dp dummy@br0], [2], [], [stderr])
AT_CHECK([sed 's/(.*)/(...)/' stderr], [0], [dnl
ovs-vswitchd: opening datapath (...)
ovs-appctl: ovs-vswitchd: server returned an error
])
OVS_VSWITCHD_STOP
AT_CLEANUP

AT_SETUP([dpctl - add-if set-if del-if])
OVS_VSWITCHD_START([], [], [=override])
AT_CHECK([ovs-appctl dpctl/add-dp dummy@br0])
AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
dummy@br0:
  lookups: hit:0 missed:0 lost:0
  flows: 0
  port 0: br0 (dummy-internal)
])
AT_CHECK([ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy,port_no=5])
AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
dummy@br0:
  lookups: hit:0 missed:0 lost:0
  flows: 0
  port 0: br0 (dummy-internal)
  port 5: vif1.0 (dummy)
])
AT_CHECK([ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy], [2], [],
  [stderr])
AT_CHECK([sed 's/(.*)/(...)/' stderr], [0],
  [ovs-vswitchd: adding vif1.0 to dummy@br0 failed (...)
ovs-appctl: ovs-vswitchd: server returned an error
])
AT_CHECK([ovs-appctl dpctl/set-if dummy@br0 vif1.0,port_no=5])
AT_CHECK([ovs-appctl dpctl/set-if dummy@br0 vif1.0,type=system], [2], [],
  [ovs-vswitchd: vif1.0: can't change type from dummy to system
ovs-appctl: ovs-vswitchd: server returned an error
])
AT_CHECK([ovs-appctl dpctl/set-if dummy@br0 br0,type=dummy-internal], [0])
AT_CHECK([ovs-appctl dpctl/set-if dummy@br0 br0,type=internal], [2], [],
  [ovs-vswitchd: br0: can't change type from dummy-internal to internal
ovs-appctl: ovs-vswitchd: server returned an error
])
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 vif1.0])
AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
dummy@br0:
  lookups: hit:0 missed:0 lost:0
  flows: 0
  port 0: br0 (dummy-internal)
])
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 vif1.0], [2], [],
  [ovs-vswitchd: no port named vif1.0
ovs-appctl: ovs-vswitchd: server returned an error
])
AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
dummy@br0:
  lookups: hit:0 missed:0 lost:0
  flows: 0
  port 0: br0 (dummy-internal)
])
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 nonexistent], [2], [],
  [ovs-vswitchd: no port named nonexistent
ovs-appctl: ovs-vswitchd: server returned an error
])
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 br0], [2], [], [stderr])
AT_CHECK([sed 's/(.*)/(...)/' stderr], [0],
  [ovs-vswitchd: deleting port br0 from dummy@br0 failed (...)
ovs-appctl: ovs-vswitchd: server returned an error
])
AT_CHECK([ovs-appctl dpctl/del-dp dummy@br0])
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 br0], [2], [], [stderr])
AT_CHECK([sed 's/(.*)/(...)/' stderr], [0],
  [ovs-vswitchd: opening datapath (...)
ovs-appctl: ovs-vswitchd: server returned an error
])
OVS_VSWITCHD_STOP(["/dummy@br0: port_del failed/d
/dummy@br0: failed to add vif1.0 as port/d
/Dropped 1 log messages in last/d"])
AT_CLEANUP

AT_SETUP([dpctl - add/mod/del-flows])
OVS_VSWITCHD_START
AT_CHECK([ovs-appctl dpctl/add-dp dummy@br0])
AT_DATA([flows.txt], [dnl
in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234) 2
])
AT_CHECK([ovs-appctl dpctl/add-flows dummy@br0 flows.txt], [0], [dnl
])
AT_CHECK([ovs-appctl dpctl/dump-flows dummy@br0 | sort], [0], [dnl
flow-dump from the main thread:
recirc_id(0),in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234), packets:0, bytes:0, used:never, actions:2
])
AT_DATA([flows.txt], [dnl
in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234) 3
])
AT_CHECK([ovs-appctl dpctl/mod-flows dummy@br0 flows.txt], [0], [dnl
])
AT_CHECK([ovs-appctl dpctl/dump-flows dummy@br0 | sort], [0], [dnl
flow-dump from the main thread:
recirc_id(0),in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234), packets:0, bytes:0, used:never, actions:3
])
AT_DATA([flows.txt], [dnl
in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234)
])
AT_CHECK([ovs-appctl dpctl/del-flows dummy@br0 flows.txt], [0], [dnl
])
AT_CHECK([ovs-appctl dpctl/dump-flows dummy@br0 | sort], [0], [dnl
])
AT_DATA([flows.txt], [dnl
add in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234) 2
add in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:03),eth_type(0x1234) 2
add in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:04),eth_type(0x1234) 2
modify in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234) 1
delete in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:03),eth_type(0x1234)
])
AT_CHECK([ovs-appctl dpctl/add-flows dummy@br0 flows.txt], [0], [dnl
])
AT_CHECK([ovs-appctl dpctl/dump-flows dummy@br0 | sort], [0], [dnl
flow-dump from the main thread:
recirc_id(0),in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234), packets:0, bytes:0, used:never, actions:1
recirc_id(0),in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:04),eth_type(0x1234), packets:0, bytes:0, used:never, actions:2
])
AT_CHECK([ovs-appctl dpctl/del-flows dummy@br0], [0], [dnl
])
AT_CHECK([ovs-appctl dpctl/dump-flows dummy@br0 | sort], [0], [dnl
])
AT_CHECK([ovs-appctl dpctl/del-dp dummy@br0])
OVS_VSWITCHD_STOP
AT_CLEANUP

AT_SETUP([dpctl - ct-get-limits ct-del-limits])
OVS_VSWITCHD_START
AT_CHECK([ovs-appctl dpctl/ct-get-limits], [0], [default limit=0
])
AT_CHECK([ovs-appctl dpctl/ct-get-limits zone=], [0], [default limit=0
])
AT_CHECK([ovs-appctl dpctl/ct-get-limits zone=,], [0], [default limit=0
])
AT_CHECK([ovs-appctl dpctl/ct-get-limits zone=x], [2], [],
  [ovs-vswitchd: invalid zone (Invalid argument)
ovs-appctl: ovs-vswitchd: server returned an error
])
AT_CHECK([ovs-appctl dpctl/ct-del-limits zone=])
OVS_VSWITCHD_STOP
AT_CLEANUP