// only ralink solution can reload it dynamically void reinit_hwnat() { // only happened when hwnat=1 // only loaded when unloaded, and unloaded when loaded // in restart_firewall for fw_pt_l2tp/fw_pt_ipsec // in restart_qos for qos_enable // in restart_wireless for wlx_mrate_x if (nvram_get_int("hwnat")) { if (is_nat_enabled() && !nvram_get_int("qos_enable") /*&&*/ /* TODO: consider RTCONFIG_DUALWAN case */ // !nvram_match("wan0_proto", "l2tp") && // !nvram_match("wan0_proto", "pptp") && /*(nvram_match("wl0_radio", "0") || !nvram_get_int("wl0_mrate_x")) && (nvram_match("wl1_radio", "0") || !nvram_get_int("wl1_mrate_x"))*/) { if (!is_module_loaded("hw_nat")) { #if 0 system("echo 2 > /proc/sys/net/ipv4/conf/default/force_igmp_version"); system("echo 2 > /proc/sys/net/ipv4/conf/all/force_igmp_version"); #endif modprobe("hw_nat"); sleep(1); } } else if (is_module_loaded("hw_nat")) { modprobe_r("hw_nat"); sleep(1); #if 0 system("echo 0 > /proc/sys/net/ipv4/conf/default/force_igmp_version"); system("echo 0 > /proc/sys/net/ipv4/conf/all/force_igmp_version"); #endif } } }
// only ralink solution can reload it dynamically void reinit_hwnat() { // only happened when hwnat=1 // only loaded when unloaded, and unloaded when loaded // in restart_firewall for fw_pt_l2tp/fw_pt_ipsec // in restart_qos for qos_enable // in restart_wireless for wlx_mrate_x if (nvram_get_int("hwnat")) { if (is_nat_enabled() && !nvram_get_int("qos_enable") /*&&*/ /* TODO: consider RTCONFIG_DUALWAN case */ // !nvram_match("wan0_proto", "l2tp") && // !nvram_match("wan0_proto", "pptp") && /*(nvram_match("wl0_radio", "0") || !nvram_get_int("wl0_mrate_x")) && (nvram_match("wl1_radio", "0") || !nvram_get_int("wl1_mrate_x"))*/) { #if !defined(RTCONFIG_DUALWAN) #if defined(RTN65U) || defined(RTN56U) char primary[] = "wan1_primaryXXXXXX"; sprintf(primary, "wan%d_primary", WAN_UNIT_SECOND); if (nvram_match(primary, "1")) { _dprintf("%s: don't install hardware NAT driver if 3G is enabled!\n", __func__); return; } #endif #endif if (!module_loaded("hw_nat")) { #if 0 system("echo 2 > /proc/sys/net/ipv4/conf/default/force_igmp_version"); system("echo 2 > /proc/sys/net/ipv4/conf/all/force_igmp_version"); #endif modprobe("hw_nat"); sleep(1); } } else if (module_loaded("hw_nat")) { modprobe_r("hw_nat"); sleep(1); #if 0 system("echo 0 > /proc/sys/net/ipv4/conf/default/force_igmp_version"); system("echo 0 > /proc/sys/net/ipv4/conf/all/force_igmp_version"); #endif } } }