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