mirror of
https://github.com/containers/podman.git
synced 2025-10-19 12:12:36 +08:00
fix(deps): update github.com/vishvananda/netlink digest to 9d88d83
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This commit is contained in:
72
vendor/github.com/vishvananda/netlink/link_linux.go
generated
vendored
72
vendor/github.com/vishvananda/netlink/link_linux.go
generated
vendored
@ -2670,9 +2670,38 @@ func (h *Handle) LinkSetGroup(link Link, group int) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// LinkSetIP6AddrGenMode sets the IPv6 address generation mode of the link device.
|
||||
// Equivalent to: `ip link set $link addrgenmode $mode`
|
||||
func LinkSetIP6AddrGenMode(link Link, mode int) error {
|
||||
return pkgHandle.LinkSetIP6AddrGenMode(link, mode)
|
||||
}
|
||||
|
||||
// LinkSetIP6AddrGenMode sets the IPv6 address generation mode of the link device.
|
||||
// Equivalent to: `ip link set $link addrgenmode $mode`
|
||||
func (h *Handle) LinkSetIP6AddrGenMode(link Link, mode int) error {
|
||||
base := link.Attrs()
|
||||
h.ensureIndex(base)
|
||||
req := h.newNetlinkRequest(unix.RTM_SETLINK, unix.NLM_F_ACK)
|
||||
|
||||
msg := nl.NewIfInfomsg(unix.AF_UNSPEC)
|
||||
msg.Index = int32(base.Index)
|
||||
req.AddData(msg)
|
||||
|
||||
b := make([]byte, 1)
|
||||
b[0] = uint8(mode)
|
||||
|
||||
data := nl.NewRtAttr(unix.IFLA_INET6_ADDR_GEN_MODE, b)
|
||||
af := nl.NewRtAttr(unix.AF_INET6, data.Serialize())
|
||||
spec := nl.NewRtAttr(unix.IFLA_AF_SPEC, af.Serialize())
|
||||
req.AddData(spec)
|
||||
|
||||
_, err := req.Execute(unix.NETLINK_ROUTE, 0)
|
||||
return err
|
||||
}
|
||||
|
||||
func addNetkitAttrs(nk *Netkit, linkInfo *nl.RtAttr, flag int) error {
|
||||
if nk.peerLinkAttrs.HardwareAddr != nil || nk.HardwareAddr != nil {
|
||||
return fmt.Errorf("netkit doesn't support setting Ethernet")
|
||||
if nk.Mode != NETKIT_MODE_L2 && (nk.LinkAttrs.HardwareAddr != nil || nk.peerLinkAttrs.HardwareAddr != nil) {
|
||||
return fmt.Errorf("netkit only allows setting Ethernet in L2 mode")
|
||||
}
|
||||
|
||||
data := linkInfo.AddRtAttr(nl.IFLA_INFO_DATA, nil)
|
||||
@ -2724,6 +2753,9 @@ func addNetkitAttrs(nk *Netkit, linkInfo *nl.RtAttr, flag int) error {
|
||||
peer.AddRtAttr(unix.IFLA_NET_NS_FD, nl.Uint32Attr(uint32(ns)))
|
||||
}
|
||||
}
|
||||
if nk.peerLinkAttrs.HardwareAddr != nil {
|
||||
peer.AddRtAttr(unix.IFLA_ADDRESS, []byte(nk.peerLinkAttrs.HardwareAddr))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -3068,6 +3100,10 @@ func linkFlags(rawFlags uint32) net.Flags {
|
||||
return f
|
||||
}
|
||||
|
||||
type genevePortRange struct {
|
||||
Lo, Hi uint16
|
||||
}
|
||||
|
||||
func addGeneveAttrs(geneve *Geneve, linkInfo *nl.RtAttr) {
|
||||
data := linkInfo.AddRtAttr(nl.IFLA_INFO_DATA, nil)
|
||||
|
||||
@ -3104,6 +3140,15 @@ func addGeneveAttrs(geneve *Geneve, linkInfo *nl.RtAttr) {
|
||||
data.AddRtAttr(nl.IFLA_GENEVE_TOS, nl.Uint8Attr(geneve.Tos))
|
||||
}
|
||||
|
||||
if geneve.PortLow > 0 || geneve.PortHigh > 0 {
|
||||
pr := genevePortRange{uint16(geneve.PortLow), uint16(geneve.PortHigh)}
|
||||
|
||||
buf := new(bytes.Buffer)
|
||||
binary.Write(buf, binary.BigEndian, &pr)
|
||||
|
||||
data.AddRtAttr(nl.IFLA_GENEVE_PORT_RANGE, buf.Bytes())
|
||||
}
|
||||
|
||||
data.AddRtAttr(nl.IFLA_GENEVE_DF, nl.Uint8Attr(uint8(geneve.Df)))
|
||||
}
|
||||
|
||||
@ -3125,6 +3170,13 @@ func parseGeneveData(link Link, data []syscall.NetlinkRouteAttr) {
|
||||
geneve.FlowBased = true
|
||||
case nl.IFLA_GENEVE_INNER_PROTO_INHERIT:
|
||||
geneve.InnerProtoInherit = true
|
||||
case nl.IFLA_GENEVE_PORT_RANGE:
|
||||
buf := bytes.NewBuffer(datum.Value[0:4])
|
||||
var pr genevePortRange
|
||||
if binary.Read(buf, binary.BigEndian, &pr) == nil {
|
||||
geneve.PortLow = int(pr.Lo)
|
||||
geneve.PortHigh = int(pr.Hi)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3900,11 +3952,27 @@ func parseTuntapData(link Link, data []syscall.NetlinkRouteAttr) {
|
||||
tuntap.Group = native.Uint32(datum.Value)
|
||||
case nl.IFLA_TUN_TYPE:
|
||||
tuntap.Mode = TuntapMode(uint8(datum.Value[0]))
|
||||
case nl.IFLA_TUN_PI:
|
||||
if datum.Value[0] == 0 {
|
||||
tuntap.Flags |= TUNTAP_NO_PI
|
||||
}
|
||||
case nl.IFLA_TUN_VNET_HDR:
|
||||
if datum.Value[0] == 1 {
|
||||
tuntap.Flags |= TUNTAP_VNET_HDR
|
||||
}
|
||||
case nl.IFLA_TUN_PERSIST:
|
||||
tuntap.NonPersist = false
|
||||
if uint8(datum.Value[0]) == 0 {
|
||||
tuntap.NonPersist = true
|
||||
}
|
||||
case nl.IFLA_TUN_MULTI_QUEUE:
|
||||
if datum.Value[0] == 1 {
|
||||
tuntap.Flags |= TUNTAP_MULTI_QUEUE
|
||||
}
|
||||
case nl.IFLA_TUN_NUM_QUEUES:
|
||||
tuntap.Queues = int(native.Uint32(datum.Value))
|
||||
case nl.IFLA_TUN_NUM_DISABLED_QUEUES:
|
||||
tuntap.DisabledQueues = int(native.Uint32(datum.Value))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user