mirror of https://github.com/vishvananda/netlink
Add LinkSetTxQLen
This commit is contained in:
parent
4fe6bd0383
commit
8a610f1e24
|
@ -145,6 +145,10 @@ func (h *Handle) LinkSetFlood(link Link, mode bool) error {
|
|||
return ErrNotImplemented
|
||||
}
|
||||
|
||||
func (h *Handle) LinkSetTxQLen(link Link, qlen int) error {
|
||||
return ErrNotImplemented
|
||||
}
|
||||
|
||||
func (h *Handle) setProtinfoAttr(link Link, mode bool, attr int) error {
|
||||
return ErrNotImplemented
|
||||
}
|
||||
|
|
|
@ -1440,6 +1440,33 @@ func (h *Handle) setProtinfoAttr(link Link, mode bool, attr int) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// LinkSetTxQLen sets the transaction queue length for the link.
|
||||
// Equivalent to: `ip link set $link txqlen $qlen`
|
||||
func LinkSetTxQLen(link Link, qlen int) error {
|
||||
return pkgHandle.LinkSetTxQLen(link, qlen)
|
||||
}
|
||||
|
||||
// LinkSetTxQLen sets the transaction queue length for the link.
|
||||
// Equivalent to: `ip link set $link txqlen $qlen`
|
||||
func (h *Handle) LinkSetTxQLen(link Link, qlen int) error {
|
||||
base := link.Attrs()
|
||||
h.ensureIndex(base)
|
||||
req := h.newNetlinkRequest(syscall.RTM_SETLINK, syscall.NLM_F_ACK)
|
||||
|
||||
msg := nl.NewIfInfomsg(syscall.AF_UNSPEC)
|
||||
msg.Index = int32(base.Index)
|
||||
req.AddData(msg)
|
||||
|
||||
b := make([]byte, 4)
|
||||
native.PutUint32(b, uint32(qlen))
|
||||
|
||||
data := nl.NewRtAttr(syscall.IFLA_TXQLEN, b)
|
||||
req.AddData(data)
|
||||
|
||||
_, err := req.Execute(syscall.NETLINK_ROUTE, 0)
|
||||
return err
|
||||
}
|
||||
|
||||
func parseVlanData(link Link, data []syscall.NetlinkRouteAttr) {
|
||||
vlan := link.(*Vlan)
|
||||
for _, datum := range data {
|
||||
|
|
14
link_test.go
14
link_test.go
|
@ -856,6 +856,20 @@ func TestLinkSet(t *testing.T) {
|
|||
t.Fatal("MTU not changed!")
|
||||
}
|
||||
|
||||
err = LinkSetTxQLen(link, 500)
|
||||
if err != nil {
|
||||
t.Fatalf("Could not set txqlen: %v", err)
|
||||
}
|
||||
|
||||
link, err = LinkByName("bar")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if link.Attrs().TxQLen != 500 {
|
||||
t.Fatal("txqlen not changed!")
|
||||
}
|
||||
|
||||
addr, err := net.ParseMAC("00:12:34:56:78:AB")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
|
|
@ -108,6 +108,10 @@ func LinkSetFlood(link Link, mode bool) error {
|
|||
return ErrNotImplemented
|
||||
}
|
||||
|
||||
func LinkSetTxQLen(link Link, qlen int) error {
|
||||
return ErrNotImplemented
|
||||
}
|
||||
|
||||
func LinkAdd(link Link) error {
|
||||
return ErrNotImplemented
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue