2
2
import re
3
3
import time
4
4
import json
5
- import redis
6
5
import pytest
7
6
8
7
from swsscommon import swsscommon
@@ -37,29 +36,6 @@ def getCrmConfigStr(dvs, key, counter):
37
36
return k [1 ]
38
37
return ""
39
38
40
- def setReadOnlyAttr (dvs , obj , attr , val ):
41
-
42
- db = swsscommon .DBConnector (swsscommon .ASIC_DB , dvs .redis_sock , 0 )
43
- tbl = swsscommon .Table (db , "ASIC_STATE:{0}" .format (obj ))
44
- keys = tbl .getKeys ()
45
-
46
- assert len (keys ) == 1
47
-
48
- swVid = keys [0 ]
49
- r = redis .Redis (unix_socket_path = dvs .redis_sock , db = swsscommon .ASIC_DB ,
50
- encoding = "utf-8" , decode_responses = True )
51
- swRid = r .hget ("VIDTORID" , swVid )
52
-
53
- assert swRid is not None
54
-
55
- ntf = swsscommon .NotificationProducer (db , "SAI_VS_UNITTEST_CHANNEL" )
56
- fvp = swsscommon .FieldValuePairs ()
57
- ntf .send ("enable_unittests" , "true" , fvp )
58
- fvp = swsscommon .FieldValuePairs ([(attr , val )])
59
- key = "SAI_OBJECT_TYPE_SWITCH:" + swRid
60
-
61
- ntf .send ("set_ro" , key , fvp )
62
-
63
39
def check_syslog (dvs , marker , err_log , expected_cnt ):
64
40
(exitcode , num ) = dvs .runcmd (['sh' , '-c' , "awk \' /%s/,ENDFILE {print;}\' /var/log/syslog | grep \" %s\" | wc -l" % (marker , err_log )])
65
41
assert num .strip () >= str (expected_cnt )
@@ -74,7 +50,7 @@ def test_CrmFdbEntry(self, dvs, testlog):
74
50
dvs .servers [2 ].runcmd ("sysctl -w net.ipv6.conf.eth0.disable_ipv6=1" )
75
51
dvs .runcmd ("crm config polling interval 1" )
76
52
77
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '1000' )
53
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '1000' )
78
54
79
55
time .sleep (2 )
80
56
@@ -101,7 +77,7 @@ def test_CrmFdbEntry(self, dvs, testlog):
101
77
tbl .set ("Vlan2|Ethernet8" , fvs )
102
78
103
79
# update available counter
104
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '999' )
80
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '999' )
105
81
106
82
time .sleep (2 )
107
83
@@ -113,7 +89,7 @@ def test_CrmFdbEntry(self, dvs, testlog):
113
89
assert avail_counter - new_avail_counter == 1
114
90
115
91
# update available counter
116
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '1000' )
92
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '1000' )
117
93
118
94
time .sleep (2 )
119
95
@@ -143,7 +119,7 @@ def test_CrmIpv4Route(self, dvs, testlog):
143
119
144
120
dvs .runcmd ("crm config polling interval 1" )
145
121
146
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '1000' )
122
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '1000' )
147
123
148
124
# add static neighbor
149
125
dvs .runcmd ("ip neigh replace 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
@@ -160,7 +136,7 @@ def test_CrmIpv4Route(self, dvs, testlog):
160
136
161
137
# add route and update available counter
162
138
ps .set ("2.2.2.0/24" , fvs )
163
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '999' )
139
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '999' )
164
140
165
141
time .sleep (2 )
166
142
@@ -174,7 +150,7 @@ def test_CrmIpv4Route(self, dvs, testlog):
174
150
# remove route and update available counter
175
151
ps ._del ("2.2.2.0/24" )
176
152
dvs .runcmd ("ip neigh del 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
177
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '1000' )
153
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '1000' )
178
154
179
155
time .sleep (2 )
180
156
@@ -213,7 +189,7 @@ def test_CrmIpv6Route(self, dvs, testlog):
213
189
214
190
dvs .runcmd ("crm config polling interval 1" )
215
191
216
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '1000' )
192
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '1000' )
217
193
218
194
# get neighbor and arp entry
219
195
dvs .servers [0 ].runcmd ("ping6 -c 4 fc00::1" )
@@ -230,7 +206,7 @@ def test_CrmIpv6Route(self, dvs, testlog):
230
206
231
207
# add route and update available counter
232
208
ps .set ("2001::/64" , fvs )
233
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '999' )
209
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '999' )
234
210
235
211
time .sleep (2 )
236
212
@@ -244,7 +220,7 @@ def test_CrmIpv6Route(self, dvs, testlog):
244
220
# remove route and update available counter
245
221
ps ._del ("2001::/64" )
246
222
dvs .runcmd ("ip -6 neigh del fc00::2 lladdr 11:22:33:44:55:66 dev Ethernet0" )
247
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '1000' )
223
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '1000' )
248
224
249
225
time .sleep (2 )
250
226
@@ -276,7 +252,7 @@ def test_CrmIpv4Nexthop(self, dvs, testlog):
276
252
277
253
dvs .runcmd ("crm config polling interval 1" )
278
254
279
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '1000' )
255
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '1000' )
280
256
281
257
time .sleep (2 )
282
258
@@ -286,7 +262,7 @@ def test_CrmIpv4Nexthop(self, dvs, testlog):
286
262
287
263
# add nexthop and update available counter
288
264
dvs .runcmd ("ip neigh replace 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
289
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '999' )
265
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '999' )
290
266
291
267
time .sleep (2 )
292
268
@@ -299,7 +275,7 @@ def test_CrmIpv4Nexthop(self, dvs, testlog):
299
275
300
276
# remove nexthop and update available counter
301
277
dvs .runcmd ("ip neigh del 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
302
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '1000' )
278
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '1000' )
303
279
304
280
time .sleep (2 )
305
281
@@ -335,7 +311,7 @@ def test_CrmIpv6Nexthop(self, dvs, testlog):
335
311
336
312
dvs .runcmd ("crm config polling interval 1" )
337
313
338
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '1000' )
314
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '1000' )
339
315
340
316
time .sleep (2 )
341
317
@@ -345,7 +321,7 @@ def test_CrmIpv6Nexthop(self, dvs, testlog):
345
321
346
322
# add nexthop and update available counter
347
323
dvs .runcmd ("ip -6 neigh replace fc00::2 lladdr 11:22:33:44:55:66 dev Ethernet0" )
348
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '999' )
324
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '999' )
349
325
350
326
time .sleep (2 )
351
327
@@ -358,7 +334,7 @@ def test_CrmIpv6Nexthop(self, dvs, testlog):
358
334
359
335
# remove nexthop and update available counter
360
336
dvs .runcmd ("ip -6 neigh del fc00::2 lladdr 11:22:33:44:55:66 dev Ethernet0" )
361
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '1000' )
337
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '1000' )
362
338
363
339
time .sleep (2 )
364
340
@@ -390,7 +366,7 @@ def test_CrmIpv4Neighbor(self, dvs, testlog):
390
366
391
367
dvs .runcmd ("crm config polling interval 1" )
392
368
393
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '1000' )
369
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '1000' )
394
370
395
371
time .sleep (2 )
396
372
@@ -400,7 +376,7 @@ def test_CrmIpv4Neighbor(self, dvs, testlog):
400
376
401
377
# add neighbor and update available counter
402
378
dvs .runcmd ("ip neigh replace 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
403
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '999' )
379
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '999' )
404
380
405
381
time .sleep (2 )
406
382
@@ -413,7 +389,7 @@ def test_CrmIpv4Neighbor(self, dvs, testlog):
413
389
414
390
# remove neighbor and update available counter
415
391
dvs .runcmd ("ip neigh del 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
416
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '1000' )
392
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '1000' )
417
393
418
394
time .sleep (2 )
419
395
@@ -449,7 +425,7 @@ def test_CrmIpv6Neighbor(self, dvs, testlog):
449
425
450
426
dvs .runcmd ("crm config polling interval 1" )
451
427
452
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '1000' )
428
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '1000' )
453
429
454
430
time .sleep (2 )
455
431
@@ -459,7 +435,7 @@ def test_CrmIpv6Neighbor(self, dvs, testlog):
459
435
460
436
# add neighbor and update available counter
461
437
dvs .runcmd ("ip -6 neigh replace fc00::2 lladdr 11:22:33:44:55:66 dev Ethernet0" )
462
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '999' )
438
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '999' )
463
439
464
440
time .sleep (2 )
465
441
@@ -472,7 +448,7 @@ def test_CrmIpv6Neighbor(self, dvs, testlog):
472
448
473
449
# remove neighbor and update available counter
474
450
dvs .runcmd ("ip -6 neigh del fc00::2 lladdr 11:22:33:44:55:66 dev Ethernet0" )
475
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '1000' )
451
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '1000' )
476
452
477
453
time .sleep (2 )
478
454
@@ -507,7 +483,7 @@ def test_CrmNexthopGroup(self, dvs, testlog):
507
483
508
484
dvs .runcmd ("crm config polling interval 1" )
509
485
510
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '1000' )
486
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '1000' )
511
487
512
488
# add neighbors
513
489
dvs .runcmd ("ip neigh replace 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
@@ -525,7 +501,7 @@ def test_CrmNexthopGroup(self, dvs, testlog):
525
501
526
502
# add route and update available counter
527
503
ps .set ("2.2.2.0/24" , fvs )
528
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '999' )
504
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '999' )
529
505
530
506
time .sleep (2 )
531
507
@@ -540,7 +516,7 @@ def test_CrmNexthopGroup(self, dvs, testlog):
540
516
ps ._del ("2.2.2.0/24" )
541
517
dvs .runcmd ("ip neigh del 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
542
518
dvs .runcmd ("ip neigh del 10.0.0.3 lladdr 11:22:33:44:55:66 dev Ethernet4" )
543
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '1000' )
519
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '1000' )
544
520
545
521
time .sleep (2 )
546
522
@@ -582,7 +558,7 @@ def test_CrmNexthopGroupMember(self, dvs, testlog):
582
558
583
559
dvs .runcmd ("crm config polling interval 1" )
584
560
585
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '1000' )
561
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '1000' )
586
562
587
563
# add neighbors
588
564
dvs .runcmd ("ip neigh replace 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
@@ -600,7 +576,7 @@ def test_CrmNexthopGroupMember(self, dvs, testlog):
600
576
601
577
# add route and update available counter
602
578
ps .set ("2.2.2.0/24" , fvs )
603
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '998' )
579
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '998' )
604
580
605
581
time .sleep (2 )
606
582
@@ -615,7 +591,7 @@ def test_CrmNexthopGroupMember(self, dvs, testlog):
615
591
ps ._del ("2.2.2.0/24" )
616
592
dvs .runcmd ("ip neigh del 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
617
593
dvs .runcmd ("ip neigh del 10.0.0.3 lladdr 11:22:33:44:55:66 dev Ethernet4" )
618
- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '1000' )
594
+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '1000' )
619
595
620
596
time .sleep (2 )
621
597
0 commit comments