mirror of
https://github.com/vishvananda/netlink
synced 2025-03-23 11:36:44 +00:00
Add LinkModify support
Signed-off-by: Daniel Gollub <dgollub@att.com>
This commit is contained in:
parent
564132f787
commit
12f2829c35
@ -1058,6 +1058,10 @@ func (h *Handle) LinkAdd(link Link) error {
|
||||
return h.linkModify(link, unix.NLM_F_CREATE|unix.NLM_F_EXCL|unix.NLM_F_ACK)
|
||||
}
|
||||
|
||||
func (h *Handle) LinkModify(link Link) error {
|
||||
return h.linkModify(link, unix.NLM_F_REQUEST|unix.NLM_F_ACK)
|
||||
}
|
||||
|
||||
func (h *Handle) linkModify(link Link, flags int) error {
|
||||
// TODO: support extra data for macvlan
|
||||
base := link.Attrs()
|
||||
@ -1203,6 +1207,11 @@ func (h *Handle) linkModify(link Link, flags int) error {
|
||||
nameData := nl.NewRtAttr(unix.IFLA_IFNAME, nl.ZeroTerminated(base.Name))
|
||||
req.AddData(nameData)
|
||||
|
||||
if base.Alias != "" {
|
||||
alias := nl.NewRtAttr(unix.IFLA_IFALIAS, []byte(base.Alias))
|
||||
req.AddData(alias)
|
||||
}
|
||||
|
||||
if base.MTU > 0 {
|
||||
mtu := nl.NewRtAttr(unix.IFLA_MTU, nl.Uint32Attr(uint32(base.MTU)))
|
||||
req.AddData(mtu)
|
||||
|
31
link_test.go
31
link_test.go
@ -523,6 +523,37 @@ func TestLinkAddDelDummyWithGroup(t *testing.T) {
|
||||
testLinkAddDel(t, &Dummy{LinkAttrs{Name: "foo", Group: 42}})
|
||||
}
|
||||
|
||||
func TestLinkModify(t *testing.T) {
|
||||
tearDown := setUpNetlinkTest(t)
|
||||
defer tearDown()
|
||||
|
||||
linkName := "foo"
|
||||
originalMTU := 1500
|
||||
updatedMTU := 1442
|
||||
|
||||
link := &Dummy{LinkAttrs{Name: linkName, MTU: originalMTU}}
|
||||
base := link.Attrs()
|
||||
|
||||
if err := LinkAdd(link); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
link.MTU = updatedMTU
|
||||
if err := pkgHandle.LinkModify(link); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
result, err := LinkByName(linkName)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
rBase := result.Attrs()
|
||||
if rBase.MTU != updatedMTU {
|
||||
t.Fatalf("MTU is %d, should be %d", rBase.MTU, base.MTU)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLinkAddDelIfb(t *testing.T) {
|
||||
tearDown := setUpNetlinkTest(t)
|
||||
defer tearDown()
|
||||
|
Loading…
Reference in New Issue
Block a user