我想通过修改sk_buff来给ipv6报文插入一个新的扩展头,但是下边这段代码老把系统搞死,大家给看看是怎么回事?
/*先检测有没有空间容纳新的扩展头,新扩展头名为 shim6hdr_pld*/
if (skb_headroom(skb)
这里的*head,*data,*tail,*end,都是指在一个skb的哪个位置呢,感觉有点不好理解,从字面来说[code]unsigned char *head; /* Head of buffer */ unsigned char *data; /* Data head pointer */ unsigned char *tail; /* Tail pointer */ unsigned char *end; /* End pointer */[/code]
我在netfilter的NF_IP_LOCAL_OUT中,设置了一个自己的钩子处理函数,工作正常。 但是由于要对udp的数据包分析头部,所以在钩子函数中对sk_buff结构的skb进行了分析,但是我发现了一个 有趣&&奇怪 的问题: 我想用一个指针指向udp的头部, struct udphdr *uh; skb是struct sk_buff *skb。 我一开始是这样赋值的: uh = skb->;h.uh; 但是得到的udp端口号怎么也不对,不管是否ntohs(端口号)! 后来我尝试使用这种赋值方法: ...
我的开发板是2410,上面的操作系统是嵌入式linux2.4.18版.我现在有个问题想请教大家就是在操作系统下如何控制2410的gpio管脚值呢,这在单片机下很好实现,加上操作系统就不太清楚了,请大家指点一下,谢谢!
各位大哥,小弟是个菜鸟,现在上头要我写个LINUX设备驱动,呵呵,其实对于熟悉LINUX和PPC的人来说是很简单的,就是控制POWERPC 405EP 的一个gpio的引脚电平,具体要求是要实现gpio_9的电平为高或者为低,呵呵,我因为太菜了,所以就请教各位大侠了啊。我也搞了一下,就是不能控制它的电平,我查了下资料,说是在LINUX下,先要request_mem_region申请I/O,然后ioremap进行地址映射,再要进行字节倒序,再配置相应的寄存器就行了,呵...
struct sk_buff { unsigned char pad[2]; unsigned char buf[ETH_FRAME_LEN];//buffer,这里是帧存储的位置 unsigned int truesize; /* buffer size */ unsigned char *data; /* Data head pointer */这个指针总是指向当前层协议头在buf中的位置或者当前层协议数据部分在buf中的位置。 unsigned int len; /* Length of actual data */指示从*data位置到帧尾的length }; buf[ETH_FRAME_LEN] 就是一帧实体,也是...
sk_buff读书笔记 第一部分: skb - Linux network buffers skb——Linux网络缓存 Harald Welte laforge@gnumonks.org 1.3, 2000/10/14 21:27:02 --------------------------------------------------------------------- Short description about the linux network buffers (skb's) --------------------------------------------------------------------- 1. Introduction At the time I wanted to know more about the Linux...