mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 13:50:01 +00:00 
			
		
		
		
	Revert "Use netlink.SetPromiscOn instead of iproute2 command"
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							364d696fd5
						
					
				
				
					commit
					0459574450
				
			
							
								
								
									
										86
									
								
								vendor/github.com/vishvananda/netlink/handle_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										86
									
								
								vendor/github.com/vishvananda/netlink/handle_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,86 +0,0 @@ | ||||
| package netlink | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
|  | ||||
| 	"github.com/vishvananda/netlink/nl" | ||||
| 	"github.com/vishvananda/netns" | ||||
| ) | ||||
|  | ||||
| // Empty handle used by the netlink package methods | ||||
| var pkgHandle = &Handle{} | ||||
|  | ||||
| // Handle is an handle for the netlink requests on a | ||||
| // specific network namespace. All the requests on the | ||||
| // same netlink family share the same netlink socket, | ||||
| // which gets released when the handle is deleted. | ||||
| type Handle struct { | ||||
| 	sockets      map[int]*nl.SocketHandle | ||||
| 	lookupByDump bool | ||||
| } | ||||
|  | ||||
| // SupportsNetlinkFamily reports whether the passed netlink family is supported by this Handle | ||||
| func (h *Handle) SupportsNetlinkFamily(nlFamily int) bool { | ||||
| 	_, ok := h.sockets[nlFamily] | ||||
| 	return ok | ||||
| } | ||||
|  | ||||
| // NewHandle returns a netlink handle on the current network namespace. | ||||
| // Caller may specify the netlink families the handle should support. | ||||
| // If no families are specified, all the families the netlink package | ||||
| // supports will be automatically added. | ||||
| func NewHandle(nlFamilies ...int) (*Handle, error) { | ||||
| 	return newHandle(netns.None(), netns.None(), nlFamilies...) | ||||
| } | ||||
|  | ||||
| // NewHandle returns a netlink handle on the network namespace | ||||
| // specified by ns. If ns=netns.None(), current network namespace | ||||
| // will be assumed | ||||
| func NewHandleAt(ns netns.NsHandle, nlFamilies ...int) (*Handle, error) { | ||||
| 	return newHandle(ns, netns.None(), nlFamilies...) | ||||
| } | ||||
|  | ||||
| // NewHandleAtFrom works as NewHandle but allows client to specify the | ||||
| // new and the origin netns Handle. | ||||
| func NewHandleAtFrom(newNs, curNs netns.NsHandle) (*Handle, error) { | ||||
| 	return newHandle(newNs, curNs) | ||||
| } | ||||
|  | ||||
| func newHandle(newNs, curNs netns.NsHandle, nlFamilies ...int) (*Handle, error) { | ||||
| 	h := &Handle{sockets: map[int]*nl.SocketHandle{}} | ||||
| 	fams := nl.SupportedNlFamilies | ||||
| 	if len(nlFamilies) != 0 { | ||||
| 		fams = nlFamilies | ||||
| 	} | ||||
| 	for _, f := range fams { | ||||
| 		s, err := nl.GetNetlinkSocketAt(newNs, curNs, f) | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 		h.sockets[f] = &nl.SocketHandle{Socket: s} | ||||
| 	} | ||||
| 	return h, nil | ||||
| } | ||||
|  | ||||
| // Delete releases the resources allocated to this handle | ||||
| func (h *Handle) Delete() { | ||||
| 	for _, sh := range h.sockets { | ||||
| 		sh.Close() | ||||
| 	} | ||||
| 	h.sockets = nil | ||||
| } | ||||
|  | ||||
| func (h *Handle) newNetlinkRequest(proto, flags int) *nl.NetlinkRequest { | ||||
| 	// Do this so that package API still use nl package variable nextSeqNr | ||||
| 	if h.sockets == nil { | ||||
| 		return nl.NewNetlinkRequest(proto, flags) | ||||
| 	} | ||||
| 	return &nl.NetlinkRequest{ | ||||
| 		NlMsghdr: syscall.NlMsghdr{ | ||||
| 			Len:   uint32(syscall.SizeofNlMsghdr), | ||||
| 			Type:  uint16(proto), | ||||
| 			Flags: syscall.NLM_F_REQUEST | uint16(flags), | ||||
| 		}, | ||||
| 		Sockets: h.sockets, | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user