前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于eBPF TC程序上下文skb的一些“小”坑

关于eBPF TC程序上下文skb的一些“小”坑

原创
作者头像
DifficultWork
发布2023-12-20 11:55:34
870
发布2023-12-20 11:55:34
举报
文章被收录于专栏:阶梯计划阶梯计划

前言

最近在eBPF的TC程序中对TCP的checksum进行重计算,其中遇到了点“小”问题。

问题描述

在重计算checksum后,发现携带payload的报文checksum总是计算错误:

抓包截图
抓包截图

刚开始是以为没有考虑末尾单字节,但是代码单独拉出来做单元测试又没有问题。

问题定位

最后把skb->data_end - skb->data看了以下长度,发现这个长度和前面无payload的报文长度一样,最后才发现skb->data_end其实是报文4层网络头的结束位置,而且我计算checksum的结束位置正是skb->data_end,实在是很“坑”,这个命名怎么看都像是...

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 问题描述
  • 问题定位
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档