build(deps): bump github.com/vishvananda/netlink
Bumps [github.com/vishvananda/netlink](https://github.com/vishvananda/netlink) from 1.2.1-beta.2 to 1.3.0. - [Release notes](https://github.com/vishvananda/netlink/releases) - [Commits](https://github.com/vishvananda/netlink/compare/v1.2.1-beta.2...v1.3.0) --- updated-dependencies: - dependency-name: github.com/vishvananda/netlink dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
		
							
								
								
									
										99
									
								
								vendor/github.com/vishvananda/netlink/xfrm_policy_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										99
									
								
								vendor/github.com/vishvananda/netlink/xfrm_policy_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,10 +1,104 @@
 | 
			
		||||
package netlink
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net"
 | 
			
		||||
 | 
			
		||||
	"github.com/vishvananda/netlink/nl"
 | 
			
		||||
	"golang.org/x/sys/unix"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dir is an enum representing an ipsec template direction.
 | 
			
		||||
type Dir uint8
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	XFRM_DIR_IN Dir = iota
 | 
			
		||||
	XFRM_DIR_OUT
 | 
			
		||||
	XFRM_DIR_FWD
 | 
			
		||||
	XFRM_SOCKET_IN
 | 
			
		||||
	XFRM_SOCKET_OUT
 | 
			
		||||
	XFRM_SOCKET_FWD
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (d Dir) String() string {
 | 
			
		||||
	switch d {
 | 
			
		||||
	case XFRM_DIR_IN:
 | 
			
		||||
		return "dir in"
 | 
			
		||||
	case XFRM_DIR_OUT:
 | 
			
		||||
		return "dir out"
 | 
			
		||||
	case XFRM_DIR_FWD:
 | 
			
		||||
		return "dir fwd"
 | 
			
		||||
	case XFRM_SOCKET_IN:
 | 
			
		||||
		return "socket in"
 | 
			
		||||
	case XFRM_SOCKET_OUT:
 | 
			
		||||
		return "socket out"
 | 
			
		||||
	case XFRM_SOCKET_FWD:
 | 
			
		||||
		return "socket fwd"
 | 
			
		||||
	}
 | 
			
		||||
	return fmt.Sprintf("socket %d", d-XFRM_SOCKET_IN)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// PolicyAction is an enum representing an ipsec policy action.
 | 
			
		||||
type PolicyAction uint8
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	XFRM_POLICY_ALLOW PolicyAction = 0
 | 
			
		||||
	XFRM_POLICY_BLOCK PolicyAction = 1
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (a PolicyAction) String() string {
 | 
			
		||||
	switch a {
 | 
			
		||||
	case XFRM_POLICY_ALLOW:
 | 
			
		||||
		return "allow"
 | 
			
		||||
	case XFRM_POLICY_BLOCK:
 | 
			
		||||
		return "block"
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Sprintf("action %d", a)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// XfrmPolicyTmpl encapsulates a rule for the base addresses of an ipsec
 | 
			
		||||
// policy. These rules are matched with XfrmState to determine encryption
 | 
			
		||||
// and authentication algorithms.
 | 
			
		||||
type XfrmPolicyTmpl struct {
 | 
			
		||||
	Dst      net.IP
 | 
			
		||||
	Src      net.IP
 | 
			
		||||
	Proto    Proto
 | 
			
		||||
	Mode     Mode
 | 
			
		||||
	Spi      int
 | 
			
		||||
	Reqid    int
 | 
			
		||||
	Optional int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (t XfrmPolicyTmpl) String() string {
 | 
			
		||||
	return fmt.Sprintf("{Dst: %v, Src: %v, Proto: %s, Mode: %s, Spi: 0x%x, Reqid: 0x%x}",
 | 
			
		||||
		t.Dst, t.Src, t.Proto, t.Mode, t.Spi, t.Reqid)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// XfrmPolicy represents an ipsec policy. It represents the overlay network
 | 
			
		||||
// and has a list of XfrmPolicyTmpls representing the base addresses of
 | 
			
		||||
// the policy.
 | 
			
		||||
type XfrmPolicy struct {
 | 
			
		||||
	Dst      *net.IPNet
 | 
			
		||||
	Src      *net.IPNet
 | 
			
		||||
	Proto    Proto
 | 
			
		||||
	DstPort  int
 | 
			
		||||
	SrcPort  int
 | 
			
		||||
	Dir      Dir
 | 
			
		||||
	Priority int
 | 
			
		||||
	Index    int
 | 
			
		||||
	Action   PolicyAction
 | 
			
		||||
	Ifindex  int
 | 
			
		||||
	Ifid     int
 | 
			
		||||
	Mark     *XfrmMark
 | 
			
		||||
	Tmpls    []XfrmPolicyTmpl
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p XfrmPolicy) String() string {
 | 
			
		||||
	return fmt.Sprintf("{Dst: %v, Src: %v, Proto: %s, DstPort: %d, SrcPort: %d, Dir: %s, Priority: %d, Index: %d, Action: %s, Ifindex: %d, Ifid: %d, Mark: %s, Tmpls: %s}",
 | 
			
		||||
		p.Dst, p.Src, p.Proto, p.DstPort, p.SrcPort, p.Dir, p.Priority, p.Index, p.Action, p.Ifindex, p.Ifid, p.Mark, p.Tmpls)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func selFromPolicy(sel *nl.XfrmSelector, policy *XfrmPolicy) {
 | 
			
		||||
	sel.Family = uint16(nl.FAMILY_V4)
 | 
			
		||||
	if policy.Dst != nil {
 | 
			
		||||
@@ -75,6 +169,7 @@ func (h *Handle) xfrmPolicyAddOrUpdate(policy *XfrmPolicy, nlProto int) error {
 | 
			
		||||
		userTmpl := nl.DeserializeXfrmUserTmpl(tmplData[start : start+nl.SizeofXfrmUserTmpl])
 | 
			
		||||
		userTmpl.XfrmId.Daddr.FromIP(tmpl.Dst)
 | 
			
		||||
		userTmpl.Saddr.FromIP(tmpl.Src)
 | 
			
		||||
		userTmpl.Family = uint16(nl.GetIPFamily(tmpl.Dst))
 | 
			
		||||
		userTmpl.XfrmId.Proto = uint8(tmpl.Proto)
 | 
			
		||||
		userTmpl.XfrmId.Spi = nl.Swap32(uint32(tmpl.Spi))
 | 
			
		||||
		userTmpl.Mode = uint8(tmpl.Mode)
 | 
			
		||||
@@ -223,8 +318,8 @@ func parseXfrmPolicy(m []byte, family int) (*XfrmPolicy, error) {
 | 
			
		||||
 | 
			
		||||
	var policy XfrmPolicy
 | 
			
		||||
 | 
			
		||||
	policy.Dst = msg.Sel.Daddr.ToIPNet(msg.Sel.PrefixlenD)
 | 
			
		||||
	policy.Src = msg.Sel.Saddr.ToIPNet(msg.Sel.PrefixlenS)
 | 
			
		||||
	policy.Dst = msg.Sel.Daddr.ToIPNet(msg.Sel.PrefixlenD, uint16(family))
 | 
			
		||||
	policy.Src = msg.Sel.Saddr.ToIPNet(msg.Sel.PrefixlenS, uint16(family))
 | 
			
		||||
	policy.Proto = Proto(msg.Sel.Proto)
 | 
			
		||||
	policy.DstPort = int(nl.Swap16(msg.Sel.Dport))
 | 
			
		||||
	policy.SrcPort = int(nl.Swap16(msg.Sel.Sport))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user