@@ -352,6 +352,10 @@ func TestMultipleNamespaceEgressIPs(t *testing.T) {
352
352
353
353
// Now assigning that IP to a node should switch OVS to use that since it's first in the list
354
354
eip .updateNodeEgress ("172.17.0.4" , "" , []string {"172.17.0.101" })
355
+ err = assertNetlinkChange (eip , "claim 172.17.0.101" )
356
+ if err != nil {
357
+ t .Fatalf ("%v" , err )
358
+ }
355
359
err = assertOVSChanges (eip , & flows ,
356
360
egressOVSChange {vnid : 42 , egress : Local },
357
361
)
@@ -361,6 +365,10 @@ func TestMultipleNamespaceEgressIPs(t *testing.T) {
361
365
362
366
// Swapping the order in the NetNamespace should swap back
363
367
eip .updateNamespaceEgress (42 , []string {"172.17.0.100" , "172.17.0.101" })
368
+ err = assertNoNetlinkChanges (eip )
369
+ if err != nil {
370
+ t .Fatalf ("%v" , err )
371
+ }
364
372
err = assertOVSChanges (eip , & flows ,
365
373
egressOVSChange {vnid : 42 , egress : Remote , remote : "172.17.0.3" },
366
374
)
@@ -370,6 +378,10 @@ func TestMultipleNamespaceEgressIPs(t *testing.T) {
370
378
371
379
// Removing the inactive egress IP from its node should have no effect
372
380
eip .updateNodeEgress ("172.17.0.4" , "" , []string {"172.17.0.200" })
381
+ err = assertNetlinkChange (eip , "release 172.17.0.101" )
382
+ if err != nil {
383
+ t .Fatalf ("%v" , err )
384
+ }
373
385
err = assertOVSChanges (eip , & flows ,
374
386
egressOVSChange {vnid : 42 , egress : Remote , remote : "172.17.0.3" },
375
387
)
@@ -379,6 +391,10 @@ func TestMultipleNamespaceEgressIPs(t *testing.T) {
379
391
380
392
// Removing the remaining egress IP should now kill the namespace
381
393
eip .updateNodeEgress ("172.17.0.3" , "" , nil )
394
+ err = assertNoNetlinkChanges (eip )
395
+ if err != nil {
396
+ t .Fatalf ("%v" , err )
397
+ }
382
398
err = assertOVSChanges (eip , & flows ,
383
399
egressOVSChange {vnid : 42 , egress : Dropped },
384
400
)
@@ -389,6 +405,10 @@ func TestMultipleNamespaceEgressIPs(t *testing.T) {
389
405
// Now add the egress IPs back...
390
406
eip .updateNodeEgress ("172.17.0.3" , "" , []string {"172.17.0.100" })
391
407
eip .updateNodeEgress ("172.17.0.4" , "" , []string {"172.17.0.101" })
408
+ err = assertNetlinkChange (eip , "claim 172.17.0.101" )
409
+ if err != nil {
410
+ t .Fatalf ("%v" , err )
411
+ }
392
412
err = assertOVSChanges (eip , & flows ,
393
413
egressOVSChange {vnid : 42 , egress : Remote , remote : "172.17.0.3" },
394
414
)
@@ -397,8 +417,13 @@ func TestMultipleNamespaceEgressIPs(t *testing.T) {
397
417
}
398
418
399
419
// Assigning either the used or the unused Egress IP to another namespace should
400
- // break this namespace
420
+ // break this namespace (and assigning the local egress IP to another namespace
421
+ // should cause the IP to be released).
401
422
eip .updateNamespaceEgress (43 , []string {"172.17.0.100" })
423
+ err = assertNoNetlinkChanges (eip )
424
+ if err != nil {
425
+ t .Fatalf ("%v" , err )
426
+ }
402
427
err = assertOVSChanges (eip , & flows ,
403
428
egressOVSChange {vnid : 42 , egress : Dropped },
404
429
egressOVSChange {vnid : 43 , egress : Dropped },
@@ -408,6 +433,10 @@ func TestMultipleNamespaceEgressIPs(t *testing.T) {
408
433
}
409
434
410
435
eip .deleteNamespaceEgress (43 )
436
+ err = assertNoNetlinkChanges (eip )
437
+ if err != nil {
438
+ t .Fatalf ("%v" , err )
439
+ }
411
440
err = assertOVSChanges (eip , & flows ,
412
441
egressOVSChange {vnid : 42 , egress : Remote , remote : "172.17.0.3" },
413
442
egressOVSChange {vnid : 43 , egress : Normal },
@@ -417,6 +446,10 @@ func TestMultipleNamespaceEgressIPs(t *testing.T) {
417
446
}
418
447
419
448
eip .updateNamespaceEgress (44 , []string {"172.17.0.101" })
449
+ err = assertNetlinkChange (eip , "release 172.17.0.101" )
450
+ if err != nil {
451
+ t .Fatalf ("%v" , err )
452
+ }
420
453
err = assertOVSChanges (eip , & flows ,
421
454
egressOVSChange {vnid : 42 , egress : Dropped },
422
455
egressOVSChange {vnid : 44 , egress : Dropped },
@@ -426,6 +459,10 @@ func TestMultipleNamespaceEgressIPs(t *testing.T) {
426
459
}
427
460
428
461
eip .deleteNamespaceEgress (44 )
462
+ err = assertNetlinkChange (eip , "claim 172.17.0.101" )
463
+ if err != nil {
464
+ t .Fatalf ("%v" , err )
465
+ }
429
466
err = assertOVSChanges (eip , & flows ,
430
467
egressOVSChange {vnid : 42 , egress : Remote , remote : "172.17.0.3" },
431
468
egressOVSChange {vnid : 44 , egress : Normal },
0 commit comments