技术专栏
网口对接switch芯片配置VLAN后网络不通的解决方法
我们芯片的网口,无论是百兆网卡ETH,还是千兆网卡GMAC,在对接某些switch芯片时(比如88E6071),如果配置了VLAN,可能会网络不通。
网络不通的原因,是IEEE没有明确规定VLAN报文的最小帧长是64字节还是68字节。有的switch芯片是按照最小帧长68字节实现的,而我们芯片的网卡,是按照最小64字节实现的,导致出现了兼容性问题,我们芯片网卡发送的数据包不满足switch芯片的最小帧长要求,数据包被switch丢弃。
遇到这种问题时,解决方案如下:
针对千兆GMAC网卡,修改网卡驱动代码,在驱动发包函数的入口(ndo_start_xmit对应的驱动实现函数),添加如下代码段。
if (skb->len < 68) {
int pad_bytes = 68 - skb->len;
WARN_ON(pad_bytes <= 0);
if (!skb_pad(skb, pad_bytes))
skb_put(skb, pad_bytes);
}
针对百兆ETH网卡,修改网卡驱动代码,在驱动发包函数的入口(ndo_start_xmit对应的驱动实现函数),添加如下代码段。
if (skb->len < 68) {
int pad_bytes = 68 - skb->len;
WARN_ON(pad_bytes <= 0);
if (!skb_pad(skb, pad_bytes)) {
skb_put(skb, pad_bytes);
if (skb->ip_summed == CHECKSUM_PARTIAL)
skb_checksum_help(skb);
}
}
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
点赞
收藏
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:3042次2020-08-17 19:42:53
-
浏览量:2875次2019-01-22 17:41:52
-
浏览量:12427次2021-02-24 17:21:40
-
浏览量:2173次2017-11-23 12:41:48
-
浏览量:8988次2017-11-25 15:52:31
-
浏览量:2311次2020-04-15 20:06:48
-
浏览量:2448次2017-12-13 15:52:24
-
浏览量:3972次2020-03-03 22:19:33
-
浏览量:3758次2020-12-21 19:41:54
-
浏览量:5407次2021-03-02 02:32:36
-
浏览量:3386次2018-03-28 16:56:08
-
浏览量:1563次2023-05-05 14:55:59
-
浏览量:633次2024-01-22 16:42:18
-
浏览量:1141次2023-11-20 17:36:15
-
浏览量:2251次2019-12-17 14:10:24
-
浏览量:7971次2022-02-09 09:00:13
-
浏览量:2994次2021-12-21 09:00:33
-
2020-08-03 13:37:42
-
浏览量:3869次2020-11-20 19:06:57
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
david
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注