/* Create new network namespace using namespace handle */
static void netns_create_namespace(netns_state_t *test_state, namespace_t *namespace_handle) {
+ (void)test_state;
+
char cmd[200];
- int cmd_ret;
// Add the network namespace
}
static void netns_create_bridge(netns_state_t *test_state, namespace_t *namespace_handle) {
+ (void)test_state;
+
char cmd[200];
- int cmd_ret;
sprintf(cmd, "ip link add name %s type bridge", namespace_handle->name);
assert(system(cmd) == 0);
}
interface_t *get_peer_interface_handle(netns_state_t *test_state, namespace_t *namespace, namespace_t *peer_namespace) {
+ (void)test_state;
+
int i;
interface_t *interfaces = namespace->interfaces;
int if_no = namespace->interfaces_no;
}
void netns_connect_namespaces(netns_state_t *test_state, namespace_t *ns1, namespace_t *ns2) {
- char buff[20], cmd[200], ns_eth0[20], ns_peer0[20];
- int cmd_ret, if_no, i;
+ char buff[20], cmd[200];
+ int i;
char eth_pairs[2][20];
namespace_t *ns[2] = { ns1, ns2 };
interface_t *interface;
// Delete veth pair if already exists
for(i = 0; i < 2; i++) {
assert(sprintf(cmd, "ip link del %s 2>/dev/null", eth_pairs[i]) >= 0);
- cmd_ret = system(cmd);
+ system(cmd);
}
// Create veth pair
}
interface->if_name = strdup(if_name);
+
assert(interface->if_name);
// Connect one end of the the veth pair to the namespace's interface
assert(sprintf(cmd, "ip link set %s netns %s name %s", eth_pairs[i], ns[i]->name, interface->if_name) >= 0);
+
assert(system(cmd) == 0);
} else {
}
void netns_configure_ip_address(netns_state_t *test_state) {
- int i, if_no, cmd_ret;
+ int i, if_no;
namespace_t *namespace;
interface_t *if_handle;
char cmd[200];
}
void netns_create_all_namespaces(netns_state_t *test_state) {
- int i, j;
- namespace_t *namespace, *peer_namespace;
- interface_t *interfaces;
+ int i;
+ namespace_t *namespace;
for(i = 0; i < test_state->num_namespaces; i++) {
namespace = get_namespace_handle_by_index(test_state, i);
char *ptr = strchr(ip, '/');
*ptr = '\0';
increment_ipv4_str(ip, INET6_ADDRSTRLEN);
- sprintf(ip, "%s/%d", ip, subnet);
+ sprintf(ip + strlen(ip), "/%d", subnet);
}
interface_t *netns_get_priv_addr(netns_state_t *test_state, const char *namespace_name) {
void netns_assign_ip_addresses(netns_state_t *test_state) {
int ns, j;
namespace_t *namespace_handle;
- interface_t *interface_handle, *peer_interface_handle;
- int sub_net;
-
+ interface_t *interface_handle;
char *addr = malloc(INET6_ADDRSTRLEN);
assert(addr);
for(i = 0; i < namespace_handle->pid_nos; i++) {
pid = (namespace_handle->pids)[i];
- assert(kill(pid, SIGINT) != -1);
+ kill(pid, SIGINT);
pid_ret = waitpid(pid, NULL, WNOHANG);
assert(pid_ret != -1);