@@ -33,6 +33,7 @@ def setUp(self):
33
33
self .addCleanup (self ._remove_ns , self .namespace )
34
34
self .device = 'int_dummy'
35
35
priv_ip_lib .create_interface (self .device , self .namespace , 'dummy' )
36
+ priv_ip_lib .set_link_attribute (self .device , self .namespace , state = 'up' )
36
37
37
38
def _remove_ns (self , namespace ):
38
39
priv_ip_lib .remove_netns (namespace )
@@ -52,7 +53,8 @@ def test_add_tc_qdisc_htb(self):
52
53
namespace = self .namespace )
53
54
qdiscs = priv_tc_lib .list_tc_qdiscs (self .device ,
54
55
namespace = self .namespace )
55
- self .assertEqual (0 , len (qdiscs ))
56
+ self .assertEqual (1 , len (qdiscs ))
57
+ self .assertEqual ('noqueue' , tc_lib ._get_attr (qdiscs [0 ], 'TCA_KIND' ))
56
58
57
59
def test_add_tc_qdisc_htb_no_handle (self ):
58
60
priv_tc_lib .add_tc_qdisc (
@@ -69,7 +71,8 @@ def test_add_tc_qdisc_htb_no_handle(self):
69
71
namespace = self .namespace )
70
72
qdiscs = priv_tc_lib .list_tc_qdiscs (self .device ,
71
73
namespace = self .namespace )
72
- self .assertEqual (0 , len (qdiscs ))
74
+ self .assertEqual (1 , len (qdiscs ))
75
+ self .assertEqual ('noqueue' , tc_lib ._get_attr (qdiscs [0 ], 'TCA_KIND' ))
73
76
74
77
def test_add_tc_qdisc_tbf (self ):
75
78
burst = 192000
@@ -95,23 +98,26 @@ def test_add_tc_qdisc_tbf(self):
95
98
namespace = self .namespace )
96
99
qdiscs = priv_tc_lib .list_tc_qdiscs (self .device ,
97
100
namespace = self .namespace )
98
- self .assertEqual (0 , len (qdiscs ))
101
+ self .assertEqual (1 , len (qdiscs ))
102
+ self .assertEqual ('noqueue' , tc_lib ._get_attr (qdiscs [0 ], 'TCA_KIND' ))
99
103
100
104
def test_add_tc_qdisc_ingress (self ):
101
105
priv_tc_lib .add_tc_qdisc (self .device , kind = 'ingress' ,
102
106
namespace = self .namespace )
103
107
qdiscs = priv_tc_lib .list_tc_qdiscs (self .device ,
104
108
namespace = self .namespace )
105
- self .assertEqual (1 , len (qdiscs ))
106
- self .assertEqual ('ingress' , tc_lib ._get_attr (qdiscs [0 ], 'TCA_KIND' ))
107
- self .assertEqual (rtnl .TC_H_INGRESS , qdiscs [0 ]['parent' ])
108
- self .assertEqual (0xffff0000 , qdiscs [0 ]['handle' ])
109
+ self .assertEqual (2 , len (qdiscs ))
110
+ self .assertEqual ('noqueue' , tc_lib ._get_attr (qdiscs [0 ], 'TCA_KIND' ))
111
+ self .assertEqual ('ingress' , tc_lib ._get_attr (qdiscs [1 ], 'TCA_KIND' ))
112
+ self .assertEqual (rtnl .TC_H_INGRESS , qdiscs [1 ]['parent' ])
113
+ self .assertEqual (0xffff0000 , qdiscs [1 ]['handle' ])
109
114
110
115
priv_tc_lib .delete_tc_qdisc (self .device , kind = 'ingress' ,
111
116
namespace = self .namespace )
112
117
qdiscs = priv_tc_lib .list_tc_qdiscs (self .device ,
113
118
namespace = self .namespace )
114
- self .assertEqual (0 , len (qdiscs ))
119
+ self .assertEqual (1 , len (qdiscs ))
120
+ self .assertEqual ('noqueue' , tc_lib ._get_attr (qdiscs [0 ], 'TCA_KIND' ))
115
121
116
122
def test_delete_tc_qdisc_no_device (self ):
117
123
self .assertRaises (
@@ -138,14 +144,16 @@ def test_delete_tc_qdisc_ingress_twice(self):
138
144
namespace = self .namespace )
139
145
qdiscs = priv_tc_lib .list_tc_qdiscs (self .device ,
140
146
namespace = self .namespace )
141
- self .assertEqual (1 , len (qdiscs ))
142
- self .assertEqual ('ingress' , tc_lib ._get_attr (qdiscs [0 ], 'TCA_KIND' ))
147
+ self .assertEqual (2 , len (qdiscs ))
148
+ self .assertEqual ('noqueue' , tc_lib ._get_attr (qdiscs [0 ], 'TCA_KIND' ))
149
+ self .assertEqual ('ingress' , tc_lib ._get_attr (qdiscs [1 ], 'TCA_KIND' ))
143
150
self .assertIsNone (
144
151
priv_tc_lib .delete_tc_qdisc (self .device , kind = 'ingress' ,
145
152
namespace = self .namespace ))
146
153
qdiscs = priv_tc_lib .list_tc_qdiscs (self .device ,
147
154
namespace = self .namespace )
148
- self .assertEqual (0 , len (qdiscs ))
155
+ self .assertEqual (1 , len (qdiscs ))
156
+ self .assertEqual ('noqueue' , tc_lib ._get_attr (qdiscs [0 ], 'TCA_KIND' ))
149
157
self .assertEqual (
150
158
errno .EINVAL ,
151
159
priv_tc_lib .delete_tc_qdisc (self .device , kind = 'ingress' ,
@@ -167,6 +175,7 @@ def setUp(self):
167
175
self .addCleanup (self ._remove_ns , self .namespace )
168
176
self .device = 'int_dummy'
169
177
priv_ip_lib .create_interface ('int_dummy' , self .namespace , 'dummy' )
178
+ priv_ip_lib .set_link_attribute (self .device , self .namespace , state = 'up' )
170
179
171
180
def _remove_ns (self , namespace ):
172
181
priv_ip_lib .remove_netns (namespace )
@@ -248,6 +257,7 @@ def setUp(self):
248
257
self .addCleanup (self ._remove_ns , self .namespace )
249
258
self .device = 'int_dummy'
250
259
priv_ip_lib .create_interface ('int_dummy' , self .namespace , 'dummy' )
260
+ priv_ip_lib .set_link_attribute (self .device , self .namespace , state = 'up' )
251
261
252
262
def _remove_ns (self , namespace ):
253
263
priv_ip_lib .remove_netns (namespace )
@@ -274,9 +284,8 @@ def test_add_tc_filter_match32(self):
274
284
self .assertEqual (value , filter_keys [index ])
275
285
276
286
def test_add_tc_filter_policy (self ):
277
- priv_tc_lib .add_tc_qdisc (
278
- self .device , parent = rtnl .TC_H_ROOT , kind = 'ingress' ,
279
- namespace = self .namespace )
287
+ priv_tc_lib .add_tc_qdisc (self .device , kind = 'ingress' ,
288
+ namespace = self .namespace )
280
289
281
290
# NOTE(ralonsoh):
282
291
# - rate: 320000 bytes/sec (pyroute2 units) = 2560 kbits/sec (OS units)
0 commit comments