added headers for user messages
[ana-net.git] / src / xt_user.h
blobcea64f887d6072a8ac46b91dd2a7921d13e2c8cf
1 /*
2 * Lightweight Autonomic Network Architecture
4 * Copyright 2011 Daniel Borkmann <dborkma@tik.ee.ethz.ch>,
5 * Swiss federal institute of technology (ETH Zurich)
6 * Subject to the GPL.
7 */
9 #ifndef XT_USER_H
10 #define XT_USER_H
12 #include <linux/types.h>
14 #include "xt_vlink.h"
15 #include "xt_fblock.h"
17 #define NETLINK_USERCTL 24
19 enum userctl_groups {
20 USERCTLGRP_NONE = VLINKNLGRP_MAX, /* Reserved */
21 #define USERCTLGRP_NONE USERCTLGRP_NONE
22 USERCTLGRP_CONF,
23 #define USERCTLGRP_CONF USERCTLGRP_CONF
24 __USERCTLGRP_MAX
27 #define USERCTLGRP_MAX (__USERCTLGRP_MAX - 1)
28 #define USERCTL_BUF_LEN 1500
30 #define NETLINK_USERCTL_CMD_ADD 1
31 #define NETLINK_USERCTL_CMD_SET 2
32 #define NETLINK_USERCTL_CMD_RM 3
33 #define NETLINK_USERCTL_CMD_BIND 4
34 #define NETLINK_USERCTL_CMD_UNBIND 5
36 struct lananlmsg_add {
37 char name[FBNAMSIZ];
38 char type[TYPNAMSIZ];
41 struct lananlmsg_rm {
42 char name[FBNAMSIZ];
45 struct lananlmsg_set {
46 char name[FBNAMSIZ];
47 /* 0-terminated string, e.g. "myip=192.168.1.111" */
48 char option[USERCTL_BUF_LEN - FBNAMSIZ];
51 struct lananlmsg_bind {
52 char name1[FBNAMSIZ];
53 char name2[FBNAMSIZ];
56 struct lananlmsg_unbind {
57 char name1[FBNAMSIZ];
58 char name2[FBNAMSIZ];
61 struct lananlmsg_replace {
62 char name1[FBNAMSIZ];
63 char name2[FBNAMSIZ];
64 int drop_priv;
67 struct lananlmsg_subscribe {
68 char name1[FBNAMSIZ];
69 char name2[FBNAMSIZ];
72 struct lananlmsg_unsubscribe {
73 char name1[FBNAMSIZ];
74 char name2[FBNAMSIZ];
77 extern int init_userctl_system(void);
78 extern void cleanup_userctl_system(void);
80 struct lananlmsg {
81 uint32_t cmd;
82 uint8_t buff[USERCTL_BUF_LEN];
85 #endif /* XT_USER_H */