找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 1033|回复: 7

[红米ax6000] AX6000的活动连接上限数量不正确

[复制链接]
固件是我自己云编译来的,云编译脚本以及项目地址是采用这位大佬的 云编译

刷好后我才注意到活动连接数上限和我之前刷的固件不一样,这个固件才3w多点。我记得我刷的其他固件有65535
请问这是什么原因


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 NghDYq 于 2023-11-1 23:36 编辑

NAT允许的最大数量,你要是软件实现的NAT,在这里改
  1. #/etc/sysctl.conf
  2. net.netfilter.nf_conntrack_max = 1234
  3. net.nf_conntrack_max = 1234
复制代码
硬件实现的NAT跟路由器解决方案有关,你这种情况应该是mediatek_soc_hnat ppe num 为1。就是3w多个
你可以在源代码中观察到这个行为
  1. static int hnat_probe(struct platform_device *pdev)
  2. {
  3.     int i;
  4.     int err = 0;
  5.     int index = 0;
  6.     struct resource *res;
  7.     const char *name;
  8.     struct device_node *np;
  9.     unsigned int val;
  10.     struct property *prop;
  11.     struct extdev_entry *ext_entry;
  12.     const struct of_device_id *match;

  13.     hnat_priv = devm_kzalloc(&pdev->dev, sizeof(struct mtk_hnat), GFP_KERNEL);
  14.     if (!hnat_priv)
  15.         return -ENOMEM;

  16.     hnat_priv->foe_etry_num = DEF_ETRY_NUM;

  17.     match = of_match_device(of_hnat_match, &pdev->dev);
  18.     if (unlikely(!match))
  19.         return -EINVAL;

  20.     hnat_priv->data = (struct mtk_hnat_data *)match->data;

  21.     hnat_priv->dev = &pdev->dev;
  22.     np = hnat_priv->dev->of_node;

  23.     err = of_property_read_string(np, "mtketh-wan", &name);
  24.     if (err < 0)
  25.         return -EINVAL;

  26.     strncpy(hnat_priv->wan, (char *)name, IFNAMSIZ - 1);
  27.     dev_info(&pdev->dev, "wan = %s\n", hnat_priv->wan);

  28.     err = of_property_read_string(np, "mtketh-lan", &name);
  29.     if (err < 0)
  30.         strncpy(hnat_priv->lan, "eth0", IFNAMSIZ);
  31.     else
  32.         strncpy(hnat_priv->lan, (char *)name, IFNAMSIZ - 1);
  33.     dev_info(&pdev->dev, "lan = %s\n", hnat_priv->lan);

  34.     err = of_property_read_string(np, "mtketh-ppd", &name);
  35.     if (err < 0)
  36.         strncpy(hnat_priv->ppd, "eth0", IFNAMSIZ);
  37.     else
  38.         strncpy(hnat_priv->ppd, (char *)name, IFNAMSIZ - 1);
  39.     dev_info(&pdev->dev, "ppd = %s\n", hnat_priv->ppd);

  40.     /*get total gmac num in hnat*/
  41.     err = of_property_read_u32_index(np, "mtketh-max-gmac", 0, &val);

  42.     if (err < 0)
  43.         return -EINVAL;

  44.     hnat_priv->gmac_num = val;

  45.     dev_info(&pdev->dev, "gmac num = %d\n", hnat_priv->gmac_num);

  46.     err = of_property_read_u32_index(np, "mtkdsa-wan-port", 0, &val);

  47.     if (err < 0) {
  48.         hnat_priv->wan_dsa_port = NONE_DSA_PORT;
  49.     } else {
  50.         hnat_priv->wan_dsa_port = val;
  51.         dev_info(&pdev->dev, "wan dsa port = %d\n", hnat_priv->wan_dsa_port);
  52.     }

  53.     err = of_property_read_u32_index(np, "mtketh-ppe-num", 0, &val);

  54.     if (err < 0)
  55.         hnat_priv->ppe_num = 1;
  56.     else
  57.         hnat_priv->ppe_num = val;

  58.     dev_info(&pdev->dev, "ppe num = %d\n", hnat_priv->ppe_num);  // -------------------------------------------------------------here----------------------------------------------------------

  59.     res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  60.     if (!res)
  61.         return -ENOENT;

  62.     hnat_priv->fe_base = devm_ioremap_nocache(&pdev->dev, res->start,
  63.                          res->end - res->start + 1);
  64.     if (!hnat_priv->fe_base)
  65.         return -EADDRNOTAVAIL;

  66. #if defined(CONFIG_MEDIATEK_NETSYS_V2)
  67.     hnat_priv->ppe_base[0] = hnat_priv->fe_base + 0x2200;

  68.     if (CFG_PPE_NUM > 1)
  69.         hnat_priv->ppe_base[1] = hnat_priv->fe_base + 0x2600;
  70. #else
  71.     hnat_priv->ppe_base[0] = hnat_priv->fe_base + 0xe00;
  72. #endif

  73.     hnat_priv->ipv6_en = true; /* enable ipv6 by default */
  74.     hnat_priv->guest_en = true; /* enable guest wifi by default */

  75.     err = hnat_init_debugfs(hnat_priv);
  76.     if (err)
  77.         return err;

  78.     prop = of_find_property(np, "ext-devices", NULL);
  79.     for (name = of_prop_next_string(prop, NULL); name;
  80.          name = of_prop_next_string(prop, name), index++) {
  81.         ext_entry = kzalloc(sizeof(*ext_entry), GFP_KERNEL);
  82.         if (!ext_entry) {
  83.             err = -ENOMEM;
  84.             goto err_out1;
  85.         }
  86.         strncpy(ext_entry->name, (char *)name, IFNAMSIZ - 1);
  87.         ext_if_add(ext_entry);
  88.     }

  89.     for (i = 0; i < MAX_EXT_DEVS && hnat_priv->ext_if[i]; i++) {
  90.         ext_entry = hnat_priv->ext_if[i];
  91.         dev_info(&pdev->dev, "ext devices = %s\n", ext_entry->name);
  92.     }

  93.     hnat_priv->lvid = 1;
  94.     hnat_priv->wvid = 2;

  95.     for (i = 0; i < CFG_PPE_NUM; i++) {
  96.         err = hnat_start(i);
  97.         if (err)
  98.             goto err_out;
  99.     }

  100.     if (hnat_priv->data->whnat) {
  101.         err = whnat_adjust_nf_hooks();
  102.         if (err)
  103.             goto err_out;
  104.     }

  105.     err = hnat_enable_hook();
  106.     if (err)
  107.         goto err_out;

  108.     register_netdevice_notifier(&nf_hnat_netdevice_nb);
  109.     register_netevent_notifier(&nf_hnat_netevent_nb);

  110.     if (hnat_priv->data->mcast) {
  111.         for (i = 0; i < CFG_PPE_NUM; i++)
  112.             hnat_mcast_enable(i);
  113.     }

  114.     timer_setup(&hnat_priv->hnat_sma_build_entry_timer, hnat_sma_build_entry, 0);
  115.     if (hnat_priv->data->version == MTK_HNAT_V3) {
  116.         timer_setup(&hnat_priv->hnat_reset_timestamp_timer, hnat_reset_timestamp, 0);
  117.         hnat_priv->hnat_reset_timestamp_timer.expires = jiffies;
  118.         add_timer(&hnat_priv->hnat_reset_timestamp_timer);
  119.     }

  120.     if (IS_HQOS_MODE && IS_GMAC1_MODE)
  121.         dev_add_pack(&mtk_pack_type);

  122.     err = hnat_roaming_enable();
  123.     if (err)
  124.         pr_info("hnat roaming work fail\n");

  125.     return 0;

  126. err_out:
  127.     for (i = 0; i < CFG_PPE_NUM; i++)
  128.         hnat_stop(i);
  129. err_out1:
  130.     hnat_deinit_debugfs(hnat_priv);
  131.     for (i = 0; i < MAX_EXT_DEVS && hnat_priv->ext_if[i]; i++) {
  132.         ext_entry = hnat_priv->ext_if[i];
  133.         ext_if_del(ext_entry);
  134.         kfree(ext_entry);
  135.     }
  136.     return err;
  137. }
复制代码



回复

使用道具 举报

来自手机 | 显示全部楼层
本帖最后由 iamyangyi 于 2023-11-1 23:58 编辑

闭源的HNAT都这样。3W还不够你家用的吗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

echo 65535 >/proc/sys/net/netfilter/nf_conntrack_expect_max
echo 65535 >/proc/sys/net/netfilter/nf_conntrack_max
回复

使用道具 举报

 楼主| | 显示全部楼层
NghDYq 发表于 2023-11-1 23:28
NAT允许的最大数量,你要是软件实现的NAT,在这里改
硬件实现的NAT跟路由器解决方案有关,你这种情况应该是 ...

感谢您的回答,我明白原因了
回复

使用道具 举报

 楼主| | 显示全部楼层
iamyangyi 发表于 2023-11-1 23:52
闭源的HNAT都这样。3W还不够你家用的吗

我把软件NAT和硬件NAT各自的上限搞混了
回复

使用道具 举报

 楼主| | 显示全部楼层
BlackZeE 发表于 2023-11-2 00:25
echo 65535 >/proc/sys/net/netfilter/nf_conntrack_expect_max
echo 65535 >/proc/sys/net/netfilter/nf_c ...

这是软件NAT设置上限的数量,还是感谢您的答复
回复

使用道具 举报

237的不是支持65535
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-23 23:41

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表