2017-04-17 10:33:09 +05:30

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,
},
}