找回密码
 立即注册
搜索
热搜: 星闪 最新 活动
查看: 280|回复: 0

PPPoE 高速流几分钟断连问题

[复制链接]

17

主题

0

回帖

101

积分

注册会员

积分
101
发表于 2025-4-27 11:46:50 | 显示全部楼层 |阅读模式
本帖最后由 qnchenying 于 2026-3-27 21:00 编辑

一、问题现象
    PPPoE 接口进行高速流量打流时,运行几分钟后会自动断联、掉线,业务中断。
二、问题根因
    PPPoE 的 LCP 协商报文不经过内核标准的 netfilter hook 点,iptables 无法识别、匹配该报文。在高速流压占带宽的情况下,LCP 保活报文无法及时发送 / 接收,最终因链路协商超时导致 PPPoE 自动断开。
三、解决方案   
   1.核心思路
   不在内核 iptables 层处理,改为在 CFE 出口点挂载钩子,专门识别 PPP LCP 报文并提升其发送队列优先级,确保保活报文优先传输。
   2.具体修改
   2. 1新增 CFE 出口钩子在代码中注册一个 CFE 发送方向钩子,挂载在出口预处理点:
  1. <font size="3">static struct hi_cfe_hook g_tx_pritag_hook = {
  2.     .pos = HI_CFE_HOOK_EGR_PRE_LRN,
  3.     .cb  = hi_netif_add_ppplcp_pq,};</font>
复制代码
   2.2新增 LCP 报文识别函数实现 hi_netif_add_ppplcp_pq 函数,对出方向报文进行解析,精准识别 PPP LCP 协议报文。
   2.3提升 LCP 报文队列优先级识别到 LCP 报文后,强制配置高优先级队列:
  1. <font size="3">skb->hi_ext_skbuff->qos.pq = 7;        // 设置最高优先级队列
  2. skb->hi_ext_skbuff->qos.pq_en = 1;     // 开启优先级生效</font>
复制代码
四、原理说明
  1. 优先级 7 为系统最高队列,高速流不会抢占 LCP 报文带宽;
  2. 保活报文优先发送、及时交互,PPPoE 链路不会因 LCP 超时断联。
五、验证方法
  1. 编译并加载修改后的驱动 / 固件;
  2. 在 PPPoE 接口上进行高速打流测试(持续 30 分钟以上);
  3. 观察 PPPoE 链路状态,无断联、无掉线;
  4. 查看 LCP 报文统计,收发正常、无超时。
六、总结
  1. 问题:高速流 → LCP 保活报文被阻塞 → PPPoE 超时断联;
  2. 原因:LCP 不走 iptables hook,无法做流量优先级保障;
  3. 方案:CFE 出口挂载钩子 → 识别 LCP → 强制设为最高优先级;
  4. 效果:高速流场景下 PPPoE 链路稳定不掉线。

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

本版积分规则

Archiver|手机版|小黑屋|【淇诺科技】技术论坛 ( 粤ICP备14010465号-1|粤ICP备14010465号-1 )

GMT+8, 2026-4-2 15:59 , Processed in 0.113997 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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