|
15 | 15 | package geneve |
16 | 16 |
|
17 | 17 | import ( |
| 18 | + "errors" |
18 | 19 | "fmt" |
19 | 20 | "net" |
20 | 21 |
|
@@ -77,9 +78,10 @@ func CreateGeneveInterface(name string, local, remote net.IP, id uint32, disable |
77 | 78 | } |
78 | 79 | } else { |
79 | 80 | geneveLink = link.(*netlink.Geneve) |
80 | | - if !geneveLink.Remote.Equal(remote) || geneveLink.MTU != mtu || geneveLink.Dport != port { |
81 | | - klog.Warningf("geneve link already exists with different remote IP (%s -> %s), modifyng it", |
82 | | - geneveLink.Remote.String(), remote.String()) |
| 81 | + if !geneveLink.Remote.Equal(remote) || geneveLink.MTU != mtu || geneveLink.Dport != port || geneveLink.ID != id { |
| 82 | + klog.Warningf("geneve link already exists with different parameters "+ |
| 83 | + "(remote: %s -> %s, id: %d -> %d, mtu: %d -> %d, dport: %d -> %d), modifying it", |
| 84 | + geneveLink.Remote.String(), remote.String(), geneveLink.ID, id, geneveLink.MTU, mtu, geneveLink.Dport, port) |
83 | 85 | if err := netlink.LinkDel(geneveLink); err != nil { |
84 | 86 | return fmt.Errorf("cannot delete geneve link: %w", err) |
85 | 87 | } |
@@ -119,6 +121,9 @@ func CreateGeneveInterface(name string, local, remote net.IP, id uint32, disable |
119 | 121 | func ExistGeneveInterface(name string) netlink.Link { |
120 | 122 | link, err := netlink.LinkByName(name) |
121 | 123 | if err != nil { |
| 124 | + if !errors.As(err, &netlink.LinkNotFoundError{}) { |
| 125 | + klog.Warningf("geneve interface check failed: %v", err) |
| 126 | + } |
122 | 127 | return nil |
123 | 128 | } |
124 | 129 | return link |
|
0 commit comments