@@ -35,9 +35,6 @@ import (
35
35
"github.com/containernetworking/cni/pkg/invoke"
36
36
cnitypes "github.com/containernetworking/cni/pkg/types"
37
37
cni020 "github.com/containernetworking/cni/pkg/types/020"
38
- cnicurrent "github.com/containernetworking/cni/pkg/types/current"
39
- "github.com/containernetworking/plugins/pkg/ip"
40
- "github.com/containernetworking/plugins/pkg/ipam"
41
38
"github.com/containernetworking/plugins/pkg/ns"
42
39
43
40
"github.com/vishvananda/netlink"
@@ -180,7 +177,7 @@ func (m *podManager) Start(rundir string, localSubnetCIDR string, clusterNetwork
180
177
181
178
go m .processCNIRequests ()
182
179
183
- m .cniServer = cniserver .NewCNIServer (rundir )
180
+ m .cniServer = cniserver .NewCNIServer (rundir , & cniserver. Config { MTU : m . mtu } )
184
181
return m .cniServer .Start (m .handleCNIRequest )
185
182
}
186
183
@@ -384,6 +381,8 @@ func maybeAddMacvlan(pod *kapi.Pod, netns string) error {
384
381
}
385
382
}
386
383
384
+ // Note that this use of ns is safe because it doesn't call Do() or WithNetNSPath()
385
+
387
386
podNs , err := ns .GetNS (netns )
388
387
if err != nil {
389
388
return fmt .Errorf ("could not open netns %q" , netns )
@@ -402,17 +401,7 @@ func maybeAddMacvlan(pod *kapi.Pod, netns string) error {
402
401
if err != nil {
403
402
return fmt .Errorf ("failed to create macvlan interface: %v" , err )
404
403
}
405
- return podNs .Do (func (netns ns.NetNS ) error {
406
- l , err := netlink .LinkByName ("macvlan0" )
407
- if err != nil {
408
- return fmt .Errorf ("failed to find macvlan interface: %v" , err )
409
- }
410
- err = netlink .LinkSetUp (l )
411
- if err != nil {
412
- return fmt .Errorf ("failed to set macvlan interface up: %v" , err )
413
- }
414
- return nil
415
- })
404
+ return nil
416
405
}
417
406
418
407
func createIPAMArgs (netnsPath string , action cniserver.CNICommand , id string ) * invoke.Args {
@@ -539,61 +528,6 @@ func (m *podManager) setup(req *cniserver.PodRequest) (cnitypes.Result, *running
539
528
}
540
529
}
541
530
542
- var hostVethName string
543
- err = ns .WithNetNSPath (req .Netns , func (hostNS ns.NetNS ) error {
544
- hostVeth , contVeth , err := ip .SetupVeth (podInterfaceName , int (m .mtu ), hostNS )
545
- if err != nil {
546
- return fmt .Errorf ("failed to create container veth: %v" , err )
547
- }
548
- // Force a consistent MAC address based on the IP address
549
- if err := ip .SetHWAddrByIP (podInterfaceName , podIP , nil ); err != nil {
550
- return fmt .Errorf ("failed to set pod interface MAC address: %v" , err )
551
- }
552
- // refetch to get hardware address and other properties
553
- tmp , err := net .InterfaceByIndex (contVeth .Index )
554
- if err != nil {
555
- return fmt .Errorf ("failed to fetch container veth: %v" , err )
556
- }
557
- contVeth = * tmp
558
-
559
- // Clear out gateway to prevent ConfigureIface from adding the cluster
560
- // subnet via the gateway
561
- ipamResult .IP4 .Gateway = nil
562
- result030 , err := cnicurrent .NewResultFromResult (ipamResult )
563
- if err != nil {
564
- return fmt .Errorf ("failed to convert IPAM: %v" , err )
565
- }
566
- // Add a sandbox interface record which ConfigureInterface expects.
567
- // The only interface we report is the pod interface.
568
- result030 .Interfaces = []* cnicurrent.Interface {
569
- {
570
- Name : podInterfaceName ,
571
- Mac : contVeth .HardwareAddr .String (),
572
- Sandbox : req .Netns ,
573
- },
574
- }
575
- intPtr := 0
576
- result030 .IPs [0 ].Interface = & intPtr
577
-
578
- if err = ipam .ConfigureIface (podInterfaceName , result030 ); err != nil {
579
- return fmt .Errorf ("failed to configure container IPAM: %v" , err )
580
- }
581
-
582
- lo , err := netlink .LinkByName ("lo" )
583
- if err == nil {
584
- err = netlink .LinkSetUp (lo )
585
- }
586
- if err != nil {
587
- return fmt .Errorf ("failed to configure container loopback: %v" , err )
588
- }
589
-
590
- hostVethName = hostVeth .Name
591
- return nil
592
- })
593
- if err != nil {
594
- return nil , nil , err
595
- }
596
-
597
531
vnid , err := m .policy .GetVNID (req .PodNamespace )
598
532
if err != nil {
599
533
return nil , nil , err
@@ -603,11 +537,11 @@ func (m *podManager) setup(req *cniserver.PodRequest) (cnitypes.Result, *running
603
537
return nil , nil , err
604
538
}
605
539
606
- ofport , err := m .ovs .SetUpPod (req .SandboxID , hostVethName , podIP , vnid )
540
+ ofport , err := m .ovs .SetUpPod (req .SandboxID , req . HostVeth , podIP , vnid )
607
541
if err != nil {
608
542
return nil , nil , err
609
543
}
610
- if err := setupPodBandwidth (m .ovs , pod , hostVethName , req .SandboxID ); err != nil {
544
+ if err := setupPodBandwidth (m .ovs , pod , req . HostVeth , req .SandboxID ); err != nil {
611
545
return nil , nil , err
612
546
}
613
547
0 commit comments