forked from mqliang/libipvs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathipvs_nl_policy.go
More file actions
138 lines (131 loc) · 4.61 KB
/
ipvs_nl_policy.go
File metadata and controls
138 lines (131 loc) · 4.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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,
},
}