mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 21:30:16 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			148 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // +build linux
 | |
| 
 | |
| package ipvs
 | |
| 
 | |
| const (
 | |
| 	genlCtrlID = 0x10
 | |
| )
 | |
| 
 | |
| // GENL control commands
 | |
| const (
 | |
| 	genlCtrlCmdUnspec uint8 = iota
 | |
| 	genlCtrlCmdNewFamily
 | |
| 	genlCtrlCmdDelFamily
 | |
| 	genlCtrlCmdGetFamily
 | |
| )
 | |
| 
 | |
| // GENL family attributes
 | |
| const (
 | |
| 	genlCtrlAttrUnspec int = iota
 | |
| 	genlCtrlAttrFamilyID
 | |
| 	genlCtrlAttrFamilyName
 | |
| )
 | |
| 
 | |
| // IPVS genl commands
 | |
| const (
 | |
| 	ipvsCmdUnspec uint8 = iota
 | |
| 	ipvsCmdNewService
 | |
| 	ipvsCmdSetService
 | |
| 	ipvsCmdDelService
 | |
| 	ipvsCmdGetService
 | |
| 	ipvsCmdNewDest
 | |
| 	ipvsCmdSetDest
 | |
| 	ipvsCmdDelDest
 | |
| 	ipvsCmdGetDest
 | |
| 	ipvsCmdNewDaemon
 | |
| 	ipvsCmdDelDaemon
 | |
| 	ipvsCmdGetDaemon
 | |
| 	ipvsCmdSetConfig
 | |
| 	ipvsCmdGetConfig
 | |
| 	ipvsCmdSetInfo
 | |
| 	ipvsCmdGetInfo
 | |
| 	ipvsCmdZero
 | |
| 	ipvsCmdFlush
 | |
| )
 | |
| 
 | |
| // Attributes used in the first level of commands
 | |
| const (
 | |
| 	ipvsCmdAttrUnspec int = iota
 | |
| 	ipvsCmdAttrService
 | |
| 	ipvsCmdAttrDest
 | |
| 	ipvsCmdAttrDaemon
 | |
| 	ipvsCmdAttrTimeoutTCP
 | |
| 	ipvsCmdAttrTimeoutTCPFin
 | |
| 	ipvsCmdAttrTimeoutUDP
 | |
| )
 | |
| 
 | |
| // Attributes used to describe a service. Used inside nested attribute
 | |
| // ipvsCmdAttrService
 | |
| const (
 | |
| 	ipvsSvcAttrUnspec int = iota
 | |
| 	ipvsSvcAttrAddressFamily
 | |
| 	ipvsSvcAttrProtocol
 | |
| 	ipvsSvcAttrAddress
 | |
| 	ipvsSvcAttrPort
 | |
| 	ipvsSvcAttrFWMark
 | |
| 	ipvsSvcAttrSchedName
 | |
| 	ipvsSvcAttrFlags
 | |
| 	ipvsSvcAttrTimeout
 | |
| 	ipvsSvcAttrNetmask
 | |
| 	ipvsSvcAttrStats
 | |
| 	ipvsSvcAttrPEName
 | |
| )
 | |
| 
 | |
| // Attributes used to describe a destination (real server). Used
 | |
| // inside nested attribute ipvsCmdAttrDest.
 | |
| const (
 | |
| 	ipvsDestAttrUnspec int = iota
 | |
| 	ipvsDestAttrAddress
 | |
| 	ipvsDestAttrPort
 | |
| 	ipvsDestAttrForwardingMethod
 | |
| 	ipvsDestAttrWeight
 | |
| 	ipvsDestAttrUpperThreshold
 | |
| 	ipvsDestAttrLowerThreshold
 | |
| 	ipvsDestAttrActiveConnections
 | |
| 	ipvsDestAttrInactiveConnections
 | |
| 	ipvsDestAttrPersistentConnections
 | |
| 	ipvsDestAttrStats
 | |
| 	ipvsDestAttrAddressFamily
 | |
| )
 | |
| 
 | |
| // IPVS Svc Statistics constancs
 | |
| 
 | |
| const (
 | |
| 	ipvsSvcStatsUnspec int = iota
 | |
| 	ipvsSvcStatsConns
 | |
| 	ipvsSvcStatsPktsIn
 | |
| 	ipvsSvcStatsPktsOut
 | |
| 	ipvsSvcStatsBytesIn
 | |
| 	ipvsSvcStatsBytesOut
 | |
| 	ipvsSvcStatsCPS
 | |
| 	ipvsSvcStatsPPSIn
 | |
| 	ipvsSvcStatsPPSOut
 | |
| 	ipvsSvcStatsBPSIn
 | |
| 	ipvsSvcStatsBPSOut
 | |
| )
 | |
| 
 | |
| // Destination forwarding methods
 | |
| const (
 | |
| 	// ConnectionFlagFwdmask indicates the mask in the connection
 | |
| 	// flags which is used by forwarding method bits.
 | |
| 	ConnectionFlagFwdMask = 0x0007
 | |
| 
 | |
| 	// ConnectionFlagMasq is used for masquerade forwarding method.
 | |
| 	ConnectionFlagMasq = 0x0000
 | |
| 
 | |
| 	// ConnectionFlagLocalNode is used for local node forwarding
 | |
| 	// method.
 | |
| 	ConnectionFlagLocalNode = 0x0001
 | |
| 
 | |
| 	// ConnectionFlagTunnel is used for tunnel mode forwarding
 | |
| 	// method.
 | |
| 	ConnectionFlagTunnel = 0x0002
 | |
| 
 | |
| 	// ConnectionFlagDirectRoute is used for direct routing
 | |
| 	// forwarding method.
 | |
| 	ConnectionFlagDirectRoute = 0x0003
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	// RoundRobin distributes jobs equally amongst the available
 | |
| 	// real servers.
 | |
| 	RoundRobin = "rr"
 | |
| 
 | |
| 	// LeastConnection assigns more jobs to real servers with
 | |
| 	// fewer active jobs.
 | |
| 	LeastConnection = "lc"
 | |
| 
 | |
| 	// DestinationHashing assigns jobs to servers through looking
 | |
| 	// up a statically assigned hash table by their destination IP
 | |
| 	// addresses.
 | |
| 	DestinationHashing = "dh"
 | |
| 
 | |
| 	// SourceHashing assigns jobs to servers through looking up
 | |
| 	// a statically assigned hash table by their source IP
 | |
| 	// addresses.
 | |
| 	SourceHashing = "sh"
 | |
| )
 |