mirror of
https://github.com/cloudnativelabs/kube-router.git
synced 2025-10-09 08:51:03 +02:00
139 lines
4.6 KiB
Go
139 lines
4.6 KiB
Go
package libipvs
|
|
|
|
import (
|
|
"github.com/hkwi/nlgo"
|
|
)
|
|
|
|
var ipvs_stats_policy = nlgo.MapPolicy{
|
|
Prefix: "IPVS_STATS_ATTR",
|
|
Names: map[uint16]string{
|
|
IPVS_STATS_ATTR_CONNS: "CONNS",
|
|
IPVS_STATS_ATTR_INPKTS: "INPKTS",
|
|
IPVS_STATS_ATTR_OUTPKTS: "OUTPKTS",
|
|
IPVS_STATS_ATTR_INBYTES: "INBYTES",
|
|
IPVS_STATS_ATTR_OUTBYTES: "OUTBYTES",
|
|
IPVS_STATS_ATTR_CPS: "CPS",
|
|
IPVS_STATS_ATTR_INPPS: "INPPS",
|
|
IPVS_STATS_ATTR_OUTPPS: "OUTPPS",
|
|
IPVS_STATS_ATTR_INBPS: "INBPS",
|
|
IPVS_STATS_ATTR_OUTBPS: "OUTBPS",
|
|
},
|
|
Rule: map[uint16]nlgo.Policy{
|
|
IPVS_STATS_ATTR_CONNS: nlgo.U32Policy,
|
|
IPVS_STATS_ATTR_INPKTS: nlgo.U32Policy,
|
|
IPVS_STATS_ATTR_OUTPKTS: nlgo.U32Policy,
|
|
IPVS_STATS_ATTR_INBYTES: nlgo.U64Policy,
|
|
IPVS_STATS_ATTR_OUTBYTES: nlgo.U64Policy,
|
|
IPVS_STATS_ATTR_CPS: nlgo.U32Policy,
|
|
IPVS_STATS_ATTR_INPPS: nlgo.U32Policy,
|
|
IPVS_STATS_ATTR_OUTPPS: nlgo.U32Policy,
|
|
IPVS_STATS_ATTR_INBPS: nlgo.U32Policy,
|
|
IPVS_STATS_ATTR_OUTBPS: nlgo.U32Policy,
|
|
},
|
|
}
|
|
|
|
var ipvs_service_policy = nlgo.MapPolicy{
|
|
Prefix: "IPVS_SVC_ATTR",
|
|
Names: map[uint16]string{
|
|
IPVS_SVC_ATTR_AF: "AF",
|
|
IPVS_SVC_ATTR_PROTOCOL: "PROTOCOL",
|
|
IPVS_SVC_ATTR_ADDR: "ADDR",
|
|
IPVS_SVC_ATTR_PORT: "PORT",
|
|
IPVS_SVC_ATTR_FWMARK: "FWMARK",
|
|
IPVS_SVC_ATTR_SCHED_NAME: "SCHED_NAME",
|
|
IPVS_SVC_ATTR_FLAGS: "FLAGS",
|
|
IPVS_SVC_ATTR_TIMEOUT: "TIMEOUT",
|
|
IPVS_SVC_ATTR_NETMASK: "NETMASK",
|
|
IPVS_SVC_ATTR_STATS: "STATS",
|
|
IPVS_SVC_ATTR_PE_NAME: "PE_NAME",
|
|
},
|
|
Rule: map[uint16]nlgo.Policy{
|
|
IPVS_SVC_ATTR_AF: nlgo.U16Policy,
|
|
IPVS_SVC_ATTR_PROTOCOL: nlgo.U16Policy,
|
|
IPVS_SVC_ATTR_ADDR: nlgo.BinaryPolicy, // struct in6_addr
|
|
IPVS_SVC_ATTR_PORT: nlgo.U16Policy,
|
|
IPVS_SVC_ATTR_FWMARK: nlgo.U32Policy,
|
|
IPVS_SVC_ATTR_SCHED_NAME: nlgo.NulStringPolicy, // IP_VS_SCHEDNAME_MAXLEN
|
|
IPVS_SVC_ATTR_FLAGS: nlgo.BinaryPolicy, // struct ip_vs_flags
|
|
IPVS_SVC_ATTR_TIMEOUT: nlgo.U32Policy,
|
|
IPVS_SVC_ATTR_NETMASK: nlgo.U32Policy,
|
|
IPVS_SVC_ATTR_STATS: ipvs_stats_policy,
|
|
},
|
|
}
|
|
|
|
var ipvs_dest_policy = nlgo.MapPolicy{
|
|
Prefix: "IPVS_DEST_ATTR",
|
|
Names: map[uint16]string{
|
|
IPVS_DEST_ATTR_ADDR: "ADDR",
|
|
IPVS_DEST_ATTR_PORT: "PORT",
|
|
IPVS_DEST_ATTR_FWD_METHOD: "FWD_METHOD",
|
|
IPVS_DEST_ATTR_WEIGHT: "WEIGHT",
|
|
IPVS_DEST_ATTR_U_THRESH: "U_THRESH",
|
|
IPVS_DEST_ATTR_L_THRESH: "L_THRESH",
|
|
IPVS_DEST_ATTR_ACTIVE_CONNS: "ACTIVE_CONNS",
|
|
IPVS_DEST_ATTR_INACT_CONNS: "INACT_CONNS",
|
|
IPVS_DEST_ATTR_PERSIST_CONNS: "PERSIST_CONNS",
|
|
IPVS_DEST_ATTR_STATS: "STATS",
|
|
IPVS_DEST_ATTR_ADDR_FAMILY: "AF",
|
|
},
|
|
Rule: map[uint16]nlgo.Policy{
|
|
IPVS_DEST_ATTR_ADDR: nlgo.BinaryPolicy, // struct in6_addr
|
|
IPVS_DEST_ATTR_PORT: nlgo.U16Policy,
|
|
IPVS_DEST_ATTR_FWD_METHOD: nlgo.U32Policy,
|
|
IPVS_DEST_ATTR_WEIGHT: nlgo.U32Policy,
|
|
IPVS_DEST_ATTR_U_THRESH: nlgo.U32Policy,
|
|
IPVS_DEST_ATTR_L_THRESH: nlgo.U32Policy,
|
|
IPVS_DEST_ATTR_ACTIVE_CONNS: nlgo.U32Policy,
|
|
IPVS_DEST_ATTR_INACT_CONNS: nlgo.U32Policy,
|
|
IPVS_DEST_ATTR_PERSIST_CONNS: nlgo.U32Policy,
|
|
IPVS_DEST_ATTR_STATS: ipvs_stats_policy,
|
|
IPVS_DEST_ATTR_ADDR_FAMILY: nlgo.U16Policy,
|
|
},
|
|
}
|
|
|
|
var ipvs_daemon_policy = nlgo.MapPolicy{
|
|
Prefix: "IPVS_DAEMON_ATTR",
|
|
Names: map[uint16]string{
|
|
IPVS_DAEMON_ATTR_STATE: "STATE",
|
|
IPVS_DAEMON_ATTR_MCAST_IFN: "MCAST_IFN",
|
|
IPVS_DAEMON_ATTR_SYNC_ID: "SYNC_ID",
|
|
},
|
|
Rule: map[uint16]nlgo.Policy{
|
|
IPVS_DAEMON_ATTR_STATE: nlgo.U32Policy,
|
|
IPVS_DAEMON_ATTR_MCAST_IFN: nlgo.StringPolicy, // maxlen = IP_VS_IFNAME_MAXLEN
|
|
IPVS_DAEMON_ATTR_SYNC_ID: nlgo.U32Policy,
|
|
},
|
|
}
|
|
|
|
var ipvs_cmd_policy = nlgo.MapPolicy{
|
|
Prefix: "IPVS_CMD_ATTR",
|
|
Names: map[uint16]string{
|
|
IPVS_CMD_ATTR_SERVICE: "SERVICE",
|
|
IPVS_CMD_ATTR_DEST: "DEST",
|
|
IPVS_CMD_ATTR_DAEMON: "DAEMON",
|
|
IPVS_CMD_ATTR_TIMEOUT_TCP: "TIMEOUT_TCP",
|
|
IPVS_CMD_ATTR_TIMEOUT_TCP_FIN: "TIMEOUT_TCP_FIN",
|
|
IPVS_CMD_ATTR_TIMEOUT_UDP: "TIMEOUT_UDP",
|
|
},
|
|
Rule: map[uint16]nlgo.Policy{
|
|
IPVS_CMD_ATTR_SERVICE: ipvs_service_policy,
|
|
IPVS_CMD_ATTR_DEST: ipvs_dest_policy,
|
|
IPVS_CMD_ATTR_DAEMON: ipvs_daemon_policy,
|
|
IPVS_CMD_ATTR_TIMEOUT_TCP: nlgo.U32Policy,
|
|
IPVS_CMD_ATTR_TIMEOUT_TCP_FIN: nlgo.U32Policy,
|
|
IPVS_CMD_ATTR_TIMEOUT_UDP: nlgo.U32Policy,
|
|
},
|
|
}
|
|
|
|
var ipvs_info_policy = nlgo.MapPolicy{
|
|
Prefix: "IPVS_INFO_ATTR",
|
|
Names: map[uint16]string{
|
|
IPVS_INFO_ATTR_VERSION: "VERSION",
|
|
IPVS_INFO_ATTR_CONN_TAB_SIZE: "CONN_TAB_SIZE",
|
|
},
|
|
Rule: map[uint16]nlgo.Policy{
|
|
IPVS_INFO_ATTR_VERSION: nlgo.U32Policy,
|
|
IPVS_INFO_ATTR_CONN_TAB_SIZE: nlgo.U32Policy,
|
|
},
|
|
}
|