@@ -326,7 +326,7 @@ func (p *Plugin) DeleteEndpoint(r DeleteEndpointRequest) error {
326
326
return nil
327
327
}
328
328
329
- func (p * Plugin ) addRoutes (v6 bool , bridge netlink.Link , r JoinRequest , hint joinHint , res * JoinResponse ) error {
329
+ func (p * Plugin ) addRoutes (opts * DHCPNetworkOptions , v6 bool , bridge netlink.Link , r JoinRequest , hint joinHint , res * JoinResponse ) error {
330
330
family := unix .AF_INET
331
331
if v6 {
332
332
family = unix .AF_INET6
@@ -370,6 +370,11 @@ func (p *Plugin) addRoutes(v6 bool, bridge netlink.Link, r JoinRequest, hint joi
370
370
continue
371
371
}
372
372
373
+ if opts .SkipRoutes {
374
+ // Don't do static routes at all
375
+ continue
376
+ }
377
+
373
378
if route .Protocol == unix .RTPROT_KERNEL ||
374
379
(family == unix .AF_INET && route .Dst .Contains (hint .IPv4 .IP )) ||
375
380
(family == unix .AF_INET6 && route .Dst .Contains (hint .IPv6 .IP )) {
@@ -443,11 +448,11 @@ func (p *Plugin) Join(ctx context.Context, r JoinRequest) (JoinResponse, error)
443
448
return res , fmt .Errorf ("failed to get bridge interface: %w" , err )
444
449
}
445
450
446
- if err := p .addRoutes (false , bridge , r , hint , & res ); err != nil {
451
+ if err := p .addRoutes (& opts , false , bridge , r , hint , & res ); err != nil {
447
452
return res , err
448
453
}
449
454
if opts .IPv6 {
450
- if err := p .addRoutes (true , bridge , r , hint , & res ); err != nil {
455
+ if err := p .addRoutes (& opts , true , bridge , r , hint , & res ); err != nil {
451
456
return res , err
452
457
}
453
458
}
0 commit comments