Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

IPVS: Add genetlink interface definitions to ip_vs.h

Add IPVS Generic Netlink interface definitions to include/linux/ip_vs.h.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>

authored by

Julius Volz and committed by
Simon Horman
c1bc667e 0eb8b1fe

+160
+160
include/linux/ip_vs.h
··· 242 242 int syncid; 243 243 }; 244 244 245 + /* 246 + * 247 + * IPVS Generic Netlink interface definitions 248 + * 249 + */ 250 + 251 + /* Generic Netlink family info */ 252 + 253 + #define IPVS_GENL_NAME "IPVS" 254 + #define IPVS_GENL_VERSION 0x1 255 + 256 + struct ip_vs_flags { 257 + __be32 flags; 258 + __be32 mask; 259 + }; 260 + 261 + /* Generic Netlink command attributes */ 262 + enum { 263 + IPVS_CMD_UNSPEC = 0, 264 + 265 + IPVS_CMD_NEW_SERVICE, /* add service */ 266 + IPVS_CMD_SET_SERVICE, /* modify service */ 267 + IPVS_CMD_DEL_SERVICE, /* delete service */ 268 + IPVS_CMD_GET_SERVICE, /* get service info */ 269 + 270 + IPVS_CMD_NEW_DEST, /* add destination */ 271 + IPVS_CMD_SET_DEST, /* modify destination */ 272 + IPVS_CMD_DEL_DEST, /* delete destination */ 273 + IPVS_CMD_GET_DEST, /* get destination info */ 274 + 275 + IPVS_CMD_NEW_DAEMON, /* start sync daemon */ 276 + IPVS_CMD_DEL_DAEMON, /* stop sync daemon */ 277 + IPVS_CMD_GET_DAEMON, /* get sync daemon status */ 278 + 279 + IPVS_CMD_SET_CONFIG, /* set config settings */ 280 + IPVS_CMD_GET_CONFIG, /* get config settings */ 281 + 282 + IPVS_CMD_SET_INFO, /* only used in GET_INFO reply */ 283 + IPVS_CMD_GET_INFO, /* get general IPVS info */ 284 + 285 + IPVS_CMD_ZERO, /* zero all counters and stats */ 286 + IPVS_CMD_FLUSH, /* flush services and dests */ 287 + 288 + __IPVS_CMD_MAX, 289 + }; 290 + 291 + #define IPVS_CMD_MAX (__IPVS_CMD_MAX - 1) 292 + 293 + /* Attributes used in the first level of commands */ 294 + enum { 295 + IPVS_CMD_ATTR_UNSPEC = 0, 296 + IPVS_CMD_ATTR_SERVICE, /* nested service attribute */ 297 + IPVS_CMD_ATTR_DEST, /* nested destination attribute */ 298 + IPVS_CMD_ATTR_DAEMON, /* nested sync daemon attribute */ 299 + IPVS_CMD_ATTR_TIMEOUT_TCP, /* TCP connection timeout */ 300 + IPVS_CMD_ATTR_TIMEOUT_TCP_FIN, /* TCP FIN wait timeout */ 301 + IPVS_CMD_ATTR_TIMEOUT_UDP, /* UDP timeout */ 302 + __IPVS_CMD_ATTR_MAX, 303 + }; 304 + 305 + #define IPVS_CMD_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1) 306 + 307 + /* 308 + * Attributes used to describe a service 309 + * 310 + * Used inside nested attribute IPVS_CMD_ATTR_SERVICE 311 + */ 312 + enum { 313 + IPVS_SVC_ATTR_UNSPEC = 0, 314 + IPVS_SVC_ATTR_AF, /* address family */ 315 + IPVS_SVC_ATTR_PROTOCOL, /* virtual service protocol */ 316 + IPVS_SVC_ATTR_ADDR, /* virtual service address */ 317 + IPVS_SVC_ATTR_PORT, /* virtual service port */ 318 + IPVS_SVC_ATTR_FWMARK, /* firewall mark of service */ 319 + 320 + IPVS_SVC_ATTR_SCHED_NAME, /* name of scheduler */ 321 + IPVS_SVC_ATTR_FLAGS, /* virtual service flags */ 322 + IPVS_SVC_ATTR_TIMEOUT, /* persistent timeout */ 323 + IPVS_SVC_ATTR_NETMASK, /* persistent netmask */ 324 + 325 + IPVS_SVC_ATTR_STATS, /* nested attribute for service stats */ 326 + __IPVS_SVC_ATTR_MAX, 327 + }; 328 + 329 + #define IPVS_SVC_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1) 330 + 331 + /* 332 + * Attributes used to describe a destination (real server) 333 + * 334 + * Used inside nested attribute IPVS_CMD_ATTR_DEST 335 + */ 336 + enum { 337 + IPVS_DEST_ATTR_UNSPEC = 0, 338 + IPVS_DEST_ATTR_ADDR, /* real server address */ 339 + IPVS_DEST_ATTR_PORT, /* real server port */ 340 + 341 + IPVS_DEST_ATTR_FWD_METHOD, /* forwarding method */ 342 + IPVS_DEST_ATTR_WEIGHT, /* destination weight */ 343 + 344 + IPVS_DEST_ATTR_U_THRESH, /* upper threshold */ 345 + IPVS_DEST_ATTR_L_THRESH, /* lower threshold */ 346 + 347 + IPVS_DEST_ATTR_ACTIVE_CONNS, /* active connections */ 348 + IPVS_DEST_ATTR_INACT_CONNS, /* inactive connections */ 349 + IPVS_DEST_ATTR_PERSIST_CONNS, /* persistent connections */ 350 + 351 + IPVS_DEST_ATTR_STATS, /* nested attribute for dest stats */ 352 + __IPVS_DEST_ATTR_MAX, 353 + }; 354 + 355 + #define IPVS_DEST_ATTR_MAX (__IPVS_DEST_ATTR_MAX - 1) 356 + 357 + /* 358 + * Attributes describing a sync daemon 359 + * 360 + * Used inside nested attribute IPVS_CMD_ATTR_DAEMON 361 + */ 362 + enum { 363 + IPVS_DAEMON_ATTR_UNSPEC = 0, 364 + IPVS_DAEMON_ATTR_STATE, /* sync daemon state (master/backup) */ 365 + IPVS_DAEMON_ATTR_MCAST_IFN, /* multicast interface name */ 366 + IPVS_DAEMON_ATTR_SYNC_ID, /* SyncID we belong to */ 367 + __IPVS_DAEMON_ATTR_MAX, 368 + }; 369 + 370 + #define IPVS_DAEMON_ATTR_MAX (__IPVS_DAEMON_ATTR_MAX - 1) 371 + 372 + /* 373 + * Attributes used to describe service or destination entry statistics 374 + * 375 + * Used inside nested attributes IPVS_SVC_ATTR_STATS and IPVS_DEST_ATTR_STATS 376 + */ 377 + enum { 378 + IPVS_STATS_ATTR_UNSPEC = 0, 379 + IPVS_STATS_ATTR_CONNS, /* connections scheduled */ 380 + IPVS_STATS_ATTR_INPKTS, /* incoming packets */ 381 + IPVS_STATS_ATTR_OUTPKTS, /* outgoing packets */ 382 + IPVS_STATS_ATTR_INBYTES, /* incoming bytes */ 383 + IPVS_STATS_ATTR_OUTBYTES, /* outgoing bytes */ 384 + 385 + IPVS_STATS_ATTR_CPS, /* current connection rate */ 386 + IPVS_STATS_ATTR_INPPS, /* current in packet rate */ 387 + IPVS_STATS_ATTR_OUTPPS, /* current out packet rate */ 388 + IPVS_STATS_ATTR_INBPS, /* current in byte rate */ 389 + IPVS_STATS_ATTR_OUTBPS, /* current out byte rate */ 390 + __IPVS_STATS_ATTR_MAX, 391 + }; 392 + 393 + #define IPVS_STATS_ATTR_MAX (__IPVS_STATS_ATTR_MAX - 1) 394 + 395 + /* Attributes used in response to IPVS_CMD_GET_INFO command */ 396 + enum { 397 + IPVS_INFO_ATTR_UNSPEC = 0, 398 + IPVS_INFO_ATTR_VERSION, /* IPVS version number */ 399 + IPVS_INFO_ATTR_CONN_TAB_SIZE, /* size of connection hash table */ 400 + __IPVS_INFO_ATTR_MAX, 401 + }; 402 + 403 + #define IPVS_INFO_ATTR_MAX (__IPVS_INFO_ATTR_MAX - 1) 404 + 245 405 #endif /* _IP_VS_H */