mirror of
https://github.com/vishvananda/netlink
synced 2025-04-07 01:52:04 +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)
|
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 {
|
func (h *Handle) linkModify(link Link, flags int) error {
|
||||||
// TODO: support extra data for macvlan
|
// TODO: support extra data for macvlan
|
||||||
base := link.Attrs()
|
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))
|
nameData := nl.NewRtAttr(unix.IFLA_IFNAME, nl.ZeroTerminated(base.Name))
|
||||||
req.AddData(nameData)
|
req.AddData(nameData)
|
||||||
|
|
||||||
|
if base.Alias != "" {
|
||||||
|
alias := nl.NewRtAttr(unix.IFLA_IFALIAS, []byte(base.Alias))
|
||||||
|
req.AddData(alias)
|
||||||
|
}
|
||||||
|
|
||||||
if base.MTU > 0 {
|
if base.MTU > 0 {
|
||||||
mtu := nl.NewRtAttr(unix.IFLA_MTU, nl.Uint32Attr(uint32(base.MTU)))
|
mtu := nl.NewRtAttr(unix.IFLA_MTU, nl.Uint32Attr(uint32(base.MTU)))
|
||||||
req.AddData(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}})
|
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) {
|
func TestLinkAddDelIfb(t *testing.T) {
|
||||||
tearDown := setUpNetlinkTest(t)
|
tearDown := setUpNetlinkTest(t)
|
||||||
defer tearDown()
|
defer tearDown()
|
||||||
|
Loading…
Reference in New Issue
Block a user