Data Structures | |
struct | _nx_info |
Network context information. More... | |
struct | _nx_addr |
Network address information. More... | |
struct | _nx_flags |
Network context flags. More... | |
struct | _nx_sock_stat |
Accounting data. More... | |
Defines | |
#define | NXF_INFO_PRIVATE 0x00000008 |
#define | NXF_STATE_SETUP (1ULL<<32) |
#define | NXF_STATE_ADMIN (1ULL<<34) |
#define | NXF_SC_HELPER (1ULL<<36) |
#define | NXF_PERSISTENT (1ULL<<38) |
#define | NXA_TYPE_IPV4 1 |
#define | NXA_TYPE_IPV6 2 |
#define | NXA_MOD_BCAST (1<<8) |
#define | NXA_TYPE_ANY ((uint16_t)-1) |
#define | VXA_SOCK_UNSPEC 0 |
#define | VXA_SOCK_UNIX 1 |
#define | VXA_SOCK_INET 2 |
#define | VXA_SOCK_INET6 3 |
#define | VXA_SOCK_PACKET 4 |
#define | VXA_SOCK_OTHER 5 |
#define | NXA_SOCK_UNSPEC VXA_SOCK_UNSPEC |
#define | NXA_SOCK_UNIX VXA_SOCK_UNIX |
#define | NXA_SOCK_INET VXA_SOCK_INET |
#define | NXA_SOCK_INET6 VXA_SOCK_INET6 |
#define | NXA_SOCK_PACKET VXA_SOCK_PACKET |
#define | NXA_SOCK_OTHER VXA_SOCK_OTHER |
Typedefs | |
typedef uint32_t | nid_t |
typedef _nx_info | nx_info_t |
Network context information. | |
typedef _nx_addr | nx_addr_t |
Network address information. | |
typedef _nx_flags | nx_flags_t |
Network context flags. | |
typedef _nx_sock_stat | nx_sock_stat_t |
Accounting data. | |
Functions | |
int | nx_create (nid_t nid, nx_flags_t *data) |
Create network context. | |
int | nx_migrate (nid_t nid) |
Migrate to an existing network context. | |
int | nx_task_nid (pid_t pid) |
Get the network context ID of a process. | |
int | nx_info (nid_t nid, nx_info_t *data) |
Get network context information. | |
int | nx_addr_add (nid_t nid, nx_addr_t *data) |
Add network context addresses. | |
int | nx_addr_remove (nid_t nid, nx_addr_t *data) |
Remove network context addresses. | |
int | nx_flags_set (nid_t nid, nx_flags_t *data) |
Set network context flags. | |
int | nx_flags_get (nid_t nid, nx_flags_t *data) |
Get network context flags. | |
int | nx_caps_set (nid_t nid, nx_flags_t *data) |
Set network context capabilities. | |
int | nx_caps_get (nid_t nid, nx_flags_t *data) |
Get network context capabilities. | |
int | nx_sock_stat (nid_t nid, nx_sock_stat_t *data) |
Get network socket accounting data. |
#define NXF_INFO_PRIVATE 0x00000008 |
#define NXF_STATE_SETUP (1ULL<<32) |
#define NXF_STATE_ADMIN (1ULL<<34) |
#define NXF_SC_HELPER (1ULL<<36) |
#define NXF_PERSISTENT (1ULL<<38) |
typedef struct _nx_flags nx_flags_t |
Network context flags.
typedef struct _nx_sock_stat nx_sock_stat_t |
Accounting data.
int nx_create | ( | nid_t | nid, | |
nx_flags_t * | data | |||
) |
Create network context.
nid | Network context ID | |
data | Initial network context flags |
Definition at line 60 of file network.c.
References _nx_flags::flags, and vserver().
00061 { 00062 struct vcmd_net_create kdata = { 00063 .flagword = 0, 00064 }; 00065 00066 if (data) 00067 kdata.flagword = data->flags; 00068 00069 return vserver(VCMD_net_create, nid, &kdata); 00070 }
int nx_migrate | ( | nid_t | nid | ) |
int nx_task_nid | ( | pid_t | pid | ) |
Get network context information.
nid | Network context ID | |
data | Empty nx_info_t struct to be filled |
Definition at line 82 of file network.c.
References _nx_info::nid, and vserver().
00083 { 00084 struct vcmd_nx_info_v0 kdata; 00085 00086 int rc = vserver(VCMD_nx_info, nid, &kdata); 00087 00088 if (rc == -1) 00089 return rc; 00090 00091 if (data) 00092 data->nid = kdata.nid; 00093 00094 return rc; 00095 }
Add network context addresses.
nid | Network context ID | |
data | Network address information |
Definition at line 97 of file network.c.
References _nx_addr::count, _nx_addr::ip, _nx_addr::mask, _nx_addr::type, and vserver().
00098 { 00099 struct vcmd_net_addr_v0 kdata; 00100 00101 if (!data) 00102 return errno = EINVAL, -1; 00103 00104 kdata.type = data->type; 00105 kdata.count = data->count; 00106 00107 str_cpyn(kdata.ip, data->ip, sizeof(kdata.ip)); 00108 str_cpyn(kdata.mask, data->mask, sizeof(kdata.mask)); 00109 00110 return vserver(VCMD_net_add, nid, &kdata); 00111 }
Remove network context addresses.
nid | Network context ID | |
data | Network address information |
Definition at line 113 of file network.c.
References _nx_addr::count, _nx_addr::ip, _nx_addr::mask, _nx_addr::type, and vserver().
00114 { 00115 struct vcmd_net_addr_v0 kdata; 00116 00117 if (!data) 00118 return errno = EINVAL, -1; 00119 00120 kdata.type = data->type; 00121 kdata.count = data->count; 00122 00123 str_cpyn(kdata.ip, data->ip, sizeof(kdata.ip)); 00124 str_cpyn(kdata.mask, data->mask, sizeof(kdata.mask)); 00125 00126 return vserver(VCMD_net_remove, nid, &kdata); 00127 }
int nx_flags_set | ( | nid_t | nid, | |
nx_flags_t * | data | |||
) |
Set network context flags.
nid | Network context ID | |
data | Network context flags |
Definition at line 129 of file network.c.
References _nx_flags::flags, _nx_flags::mask, and vserver().
00130 { 00131 struct vcmd_net_flags_v0 kdata; 00132 00133 if (!data) 00134 return errno = EINVAL, -1; 00135 00136 kdata.flagword = data->flags; 00137 kdata.mask = data->mask; 00138 00139 return vserver(VCMD_set_nflags, nid, &kdata); 00140 }
int nx_flags_get | ( | nid_t | nid, | |
nx_flags_t * | data | |||
) |
Get network context flags.
nid | Network context ID | |
data | Empty nx_flags_t struct to be filled |
Definition at line 142 of file network.c.
References _nx_flags::flags, _nx_flags::mask, and vserver().
00143 { 00144 struct vcmd_net_flags_v0 kdata; 00145 00146 if (!data) 00147 return errno = EINVAL, -1; 00148 00149 int rc = vserver(VCMD_get_nflags, nid, &kdata); 00150 00151 if (rc == -1) 00152 return rc; 00153 00154 data->flags = kdata.flagword; 00155 data->mask = kdata.mask; 00156 00157 return rc; 00158 }
int nx_caps_set | ( | nid_t | nid, | |
nx_flags_t * | data | |||
) |
Set network context capabilities.
nid | Network context ID | |
data | Network context capabilities |
Definition at line 160 of file network.c.
References _nx_flags::flags, _nx_flags::mask, and vserver().
00161 { 00162 struct vcmd_net_caps_v0 kdata; 00163 00164 if (!data) 00165 return errno = EINVAL, -1; 00166 00167 kdata.ncaps = data->flags; 00168 kdata.cmask = data->mask; 00169 00170 return vserver(VCMD_set_ncaps, nid, &kdata); 00171 }
int nx_caps_get | ( | nid_t | nid, | |
nx_flags_t * | data | |||
) |
Get network context capabilities.
nid | Network context ID | |
data | Empty nx_flags_t struct to be filled |
Definition at line 173 of file network.c.
References _nx_flags::flags, _nx_flags::mask, and vserver().
00174 { 00175 struct vcmd_net_caps_v0 kdata; 00176 00177 if (!data) 00178 return errno = EINVAL, -1; 00179 00180 int rc = vserver(VCMD_get_ncaps, nid, &kdata); 00181 00182 if (rc == -1) 00183 return rc; 00184 00185 data->flags = kdata.ncaps; 00186 data->mask = kdata.cmask; 00187 00188 return rc; 00189 }
int nx_sock_stat | ( | nid_t | nid, | |
nx_sock_stat_t * | data | |||
) |
Get network socket accounting data.
nid | Network context ID | |
data | Empty nx_sock_stat_t struct to be filled |
Definition at line 191 of file network.c.
References _nx_sock_stat::count, _nx_sock_stat::id, _nx_sock_stat::total, and vserver().
00192 { 00193 struct vcmd_sock_stat_v0 kdata; 00194 00195 if (!data) 00196 return errno = EINVAL, -1; 00197 00198 kdata.field = data->id; 00199 00200 int rc = vserver(VCMD_sock_stat, nid, &kdata); 00201 00202 if (rc == -1) 00203 return rc; 00204 00205 data->count[0] = kdata.count[0]; 00206 data->count[1] = kdata.count[1]; 00207 data->count[2] = kdata.count[2]; 00208 00209 data->total[0] = kdata.total[0]; 00210 data->total[1] = kdata.total[1]; 00211 data->total[2] = kdata.total[2]; 00212 00213 return rc; 00214 }