static int _netif_flag(char *cmd, kernel_pid_t dev, char *flag) { ng_netconf_enable_t set = NETCONF_ENABLE; if (flag[0] == '-') { set = NETCONF_DISABLE; flag++; } if (strcmp(flag, "promisc") == 0) { return _netif_set_flag(dev, NETCONF_OPT_PROMISCUOUSMODE, set); } else if (strcmp(flag, "preload") == 0) { return _netif_set_flag(dev, NETCONF_OPT_PRELOADING, set); } else if (strcmp(flag, "autoack") == 0) { return _netif_set_flag(dev, NETCONF_OPT_AUTOACK, set); } else if (strcmp(flag, "raw") == 0) { return _netif_set_flag(dev, NETCONF_OPT_RAWMODE, set); } else if (strcmp(flag, "6lo") == 0) { #ifdef MODULE_NG_IPV6_NETIF ng_ipv6_netif_t *entry = ng_ipv6_netif_get(dev); if (entry == NULL) { puts("error: unable to (un)set 6LoWPAN support"); return 1; } mutex_lock(&entry->mutex); if (set) { entry->flags |= NG_IPV6_NETIF_FLAGS_SIXLOWPAN; printf("success: set 6LoWPAN support on interface %" PRIkernel_pid "\n", dev); } else { entry->flags &= ~NG_IPV6_NETIF_FLAGS_SIXLOWPAN; printf("success: unset 6LoWPAN support on interface %" PRIkernel_pid "\n", dev); } mutex_unlock(&entry->mutex); return 0; #else puts("error: unable to (un)set 6LoWPAN support"); return 1; #endif } _flag_usage(cmd); return 1; }
static int _netif_flag(char *cmd, kernel_pid_t iface, char *flag) { netopt_enable_t set = NETOPT_ENABLE; if (flag[0] == '-') { set = NETOPT_DISABLE; flag++; } for (unsigned i = 0; i < _ARRAY_LEN(flag_cmds); i++) { if (strcmp(flag_cmds[i].name, flag) == 0) { return _netif_set_flag(iface, flag_cmds[i].opt, set); } } _flag_usage(cmd); return 1; }
static int _netif_flag(char *cmd, kernel_pid_t dev, char *flag) { netopt_enable_t set = NETOPT_ENABLE; if (flag[0] == '-') { set = NETOPT_DISABLE; flag++; } if (strcmp(flag, "promisc") == 0) { return _netif_set_flag(dev, NETOPT_PROMISCUOUSMODE, set); } else if (strcmp(flag, "preload") == 0) { return _netif_set_flag(dev, NETOPT_PRELOADING, set); } else if (strcmp(flag, "autoack") == 0) { return _netif_set_flag(dev, NETOPT_AUTOACK, set); } else if (strcmp(flag, "raw") == 0) { return _netif_set_flag(dev, NETOPT_RAWMODE, set); } else if (strcmp(flag, "6lo") == 0) { #ifdef MODULE_GNRC_IPV6_NETIF gnrc_ipv6_netif_t *entry = gnrc_ipv6_netif_get(dev); if (entry == NULL) { puts("error: unable to (un)set 6LoWPAN support"); return 1; } mutex_lock(&entry->mutex); if (set) { entry->flags |= GNRC_IPV6_NETIF_FLAGS_SIXLOWPAN; printf("success: set 6LoWPAN support on interface %" PRIkernel_pid "\n", dev); } else { entry->flags &= ~GNRC_IPV6_NETIF_FLAGS_SIXLOWPAN; printf("success: unset 6LoWPAN support on interface %" PRIkernel_pid "\n", dev); } mutex_unlock(&entry->mutex); return 0; #else puts("error: unable to (un)set 6LoWPAN support"); return 1; #endif } else if (strcmp(flag, "iphc") == 0) { #if defined(MODULE_GNRC_SIXLOWPAN_NETIF) && defined(MODULE_GNRC_SIXLOWPAN_IPHC) gnrc_sixlowpan_netif_t *entry = gnrc_sixlowpan_netif_get(dev); if (entry == NULL) { puts("error: unable to (un)set IPHC"); return 1; } if (set) { entry->iphc_enabled = true; printf("success: enable IPHC on interface %" PRIkernel_pid "\n", dev); } else { entry->iphc_enabled = false; printf("success: disable IPHC on interface %" PRIkernel_pid "\n", dev); } return 0; #else puts("error: unable to (un)set IPHC."); return 1; #endif } _flag_usage(cmd); return 1; }
static int _netif_flag(char *cmd, kernel_pid_t dev, char *flag) { netopt_enable_t set = NETOPT_ENABLE; if (flag[0] == '-') { set = NETOPT_DISABLE; flag++; } if (strcmp(flag, "promisc") == 0) { return _netif_set_flag(dev, NETOPT_PROMISCUOUSMODE, set); } else if (strcmp(flag, "preload") == 0) { return _netif_set_flag(dev, NETOPT_PRELOADING, set); } else if (strcmp(flag, "autoack") == 0) { return _netif_set_flag(dev, NETOPT_AUTOACK, set); } else if (strcmp(flag, "raw") == 0) { return _netif_set_flag(dev, NETOPT_RAWMODE, set); } else if (strcmp(flag, "csma") == 0) { return _netif_set_flag(dev, NETOPT_CSMA, set); } else if (strcmp(flag, "autocca") == 0) { return _netif_set_flag(dev, NETOPT_AUTOCCA, set); } else if (strcmp(flag, "iphc") == 0) { #if defined(MODULE_GNRC_SIXLOWPAN_NETIF) && defined(MODULE_GNRC_SIXLOWPAN_IPHC) gnrc_sixlowpan_netif_t *entry = gnrc_sixlowpan_netif_get(dev); if (entry == NULL) { puts("error: unable to (un)set IPHC"); return 1; } if (set) { entry->iphc_enabled = true; printf("success: enable IPHC on interface %" PRIkernel_pid "\n", dev); } else { entry->iphc_enabled = false; printf("success: disable IPHC on interface %" PRIkernel_pid "\n", dev); } return 0; #else puts("error: unable to (un)set IPHC."); return 1; #endif } else if (strcmp(flag, "rtr_adv") == 0) { #if defined(MODULE_GNRC_NDP_ROUTER) || defined(MODULE_GNRC_SIXLOWPAN_ND_ROUTER) gnrc_ipv6_netif_t *entry = gnrc_ipv6_netif_get(dev); if (entry == NULL) { puts("error: unable to (un)set router advertisement flag."); return 1; } if (set) { gnrc_ipv6_netif_set_rtr_adv(entry, true); printf("success: enable router advertisements on interface %" PRIkernel_pid "\n", dev); } else { gnrc_ipv6_netif_set_rtr_adv(entry, false); printf("success: disable router advertisements on interface %" PRIkernel_pid "\n", dev); } return 0; #else puts("error: unable to (un)set router advertisement flag."); return 1; #endif } _flag_usage(cmd); return 1; }