修改linux网卡驱动,终于成功通过重构skb实现vlan功能

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

修改linux网卡驱动,终于成功通过重构skb实现vlan功能(原创)

测试环境:mips核cpu,linux-2.4

测试工具:用wrieshark抓包看现在的ip包格式

一、思路:

1.先能进行编译、烧写内核

2.打开现有的debug开关,看有关的打印信息

3.烧录bin文件到/dev/mtd1

4.用wrieshark抓包看现在的ip包格式

5.开始修改包

6.另外,需要学习skbuff

二、了解802.1Q TAG

1、802.1Q:

目标MAC 源MAC 802.1Q 协议类型/长度数据 FCS 6字节 6字节 4字节 2字节未知 4字节

802.1Q报头中有以下字段:

Protocol Type:指明该数据包是一个802.1Q数据包,取值0x8100;

Priority:指明该数据包的优先级,一般情况下置0;

CFI:此位一般忽略,置0;

VLAN ID:这是一个12位的域,指明VLAN的ID,一共4096个;

三、学习skbuff:

unsigned char *head

unsigned char *end

unsigned char *data

unsigned char *tail

a)skb_put;b)skb_push;c)skb_pull;d)skb_reserve

四、设计软件,实现其所想

1、设计打印函数,便于调试:

-----------------------1----------------------------

data-tail=0,skb->date_len=0,skb->len=0;skb.data=-2128687502;skb.tail= -2128687502;akb.protocol=1544

----------------------------------------------------

-----------------------2----------------------------

[0]-[66]-[88]-[15]-[0]-[da]-[0]-[23]-[89]-[e3]-[d8]-[33]-[8]-[6]-[0]-

[1]-[8]-[0]-[6]-[4]-[0]-[2]-[0]-[23]-[89]-[e3]-[d8]-[33]-[c0]-[a8]-[2 ]-[fe]-[0]-[66]-[88]-[15]-[0]-[da]-[c0]-[a8]-[2]-[6e]-[0]-[0]-[0]-[0] -[0]-[0]-[0]-[0]-[0]-[0]-[0]-[0]-[0]-[0]-[0]-[0]-[0]-[0]-

data-tail=60,skb->date_len=0,skb->len=60;skb.data=-2128687442;skb.tai l=-2128687442;akb.protocol=1544

----------------------------------------------------

-----------------------3----------------------------

data-tail=-14,skb->date_len=0,skb->len=46;skb.data=-2128687428;skb.ta il=-2128687442;akb.protocol=29499

----------------------------------------------------

2、设计几个重要函数:

static int print_skb(struct sk_buff *skb)

static int detect_vlanframe_and_killvlanflag(struct sk_buff *skb) static int add_vlan_flag(struct sk_buff *skb,unsigned short vlanid) static int au1000_tx(struct sk_buff *skb, struct net_device *dev) static int au1000_rx(struct net_device *dev)

3、编码,抓包,投入实际环境测试使用,验收。

五、累了,休息去了.....

相关文档
最新文档