技术专栏
网口对接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个
手气红包

相关专栏
-
浏览量:578次2019-01-22 17:41:52
-
浏览量:898次2017-11-25 15:52:31
-
浏览量:369次2020-04-15 20:06:48
-
浏览量:622次2017-11-23 12:41:48
-
浏览量:447次2020-03-03 22:19:33
-
浏览量:1030次2017-12-13 15:52:24
-
浏览量:679次2019-12-17 14:10:24
-
2020-08-03 13:37:42
-
浏览量:747次2018-03-28 16:56:08
-
浏览量:754次2020-03-12 12:39:37
-
浏览量:354次2021-12-20 10:51:43
-
浏览量:562次2020-03-05 15:10:19
-
浏览量:329次2019-05-06 16:29:55
-
浏览量:923次2022-03-08 11:11:43
-
浏览量:307次2020-04-26 14:00:21
-
浏览量:358次2021-12-20 09:30:46
-
2020-03-26 16:21:16
-
浏览量:353次2019-09-23 16:58:01
-
浏览量:354次2020-05-29 17:57:54
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
途行者阿杜
您的支持将鼓励我继续创作!
打赏金额:
¥1

¥5

¥10

¥50

¥100

¥0.1

支付方式:

举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注