File tree Expand file tree Collapse file tree 2 files changed +30
-11
lines changed
Expand file tree Collapse file tree 2 files changed +30
-11
lines changed Original file line number Diff line number Diff line change @@ -44,20 +44,19 @@ func parseNetConf(bytes []byte) (*types.NetConf, error) {
4444func createDummy (ifName string , netns ns.NetNS ) (* current.Interface , error ) {
4545 dummy := & current.Interface {}
4646
47- linkAttrs := netlink . NewLinkAttrs ()
48- linkAttrs . Name = ifName
49- linkAttrs .Namespace = netlink . NsFd ( int ( netns . Fd ()))
47+ err := netns . Do ( func ( _ ns. NetNS ) error {
48+ linkAttrs := netlink . NewLinkAttrs ()
49+ linkAttrs .Name = ifName
5050
51- dm := & netlink.Dummy {
52- LinkAttrs : linkAttrs ,
53- }
51+ dm := & netlink.Dummy {
52+ LinkAttrs : linkAttrs ,
53+ }
5454
55- if err := netlink .LinkAdd (dm ); err != nil {
56- return nil , fmt .Errorf ("failed to create dummy: %v" , err )
57- }
58- dummy .Name = ifName
55+ if err := netlink .LinkAdd (dm ); err != nil {
56+ return fmt .Errorf ("failed to create dummy: %v" , err )
57+ }
58+ dummy .Name = ifName
5959
60- err := netns .Do (func (_ ns.NetNS ) error {
6160 // Re-fetch interface to get all properties/attributes
6261 contDummy , err := netlinksafe .LinkByName (ifName )
6362 if err != nil {
Original file line number Diff line number Diff line change @@ -233,6 +233,26 @@ var _ = Describe("dummy Operations", func() {
233233 Expect (err ).NotTo (HaveOccurred ())
234234 })
235235
236+ It (fmt .Sprintf ("[%s] creates an dummy link in a non-default namespace with conflicting name in original namespace" , ver ), func () {
237+ ifName := "foobar0"
238+ err := originalNS .Do (func (ns.NetNS ) error {
239+ defer GinkgoRecover ()
240+ // Create dummy in the original namespace, with the same name
241+ linkAttrs := netlink .NewLinkAttrs ()
242+ linkAttrs .Name = ifName
243+ dm := & netlink.Dummy {
244+ LinkAttrs : linkAttrs ,
245+ }
246+ err := netlink .LinkAdd (dm )
247+ Expect (err ).NotTo (HaveOccurred ())
248+
249+ _ , err = createDummy (ifName , targetNS )
250+ Expect (err ).NotTo (HaveOccurred ())
251+ return nil
252+ })
253+ Expect (err ).NotTo (HaveOccurred ())
254+ })
255+
236256 It (fmt .Sprintf ("[%s] configures and deconfigures a dummy link with ADD/CHECK/DEL" , ver ), func () {
237257 const IFNAME = "dummy0"
238258
You can’t perform that action at this time.
0 commit comments