主题:关于struct sk_buff的问题
jackin0627
[专家分:1270] 发布于 2005-08-11 10:14:00
各位大侠,struct sk_buff是怎样了个结构呀,里面的各成员具体代表什么呀,请各位高手指点一二,小弟不胜感激!!
回复列表 (共5个回复)
沙发
warmharted [专家分:700] 发布于 2005-08-11 14:38:00
嘿嘿我的存货还是很全的,这个结构是linux 源码linux.h中的一个结构.你要干什么?
对了,记得评一下分.谢谢
struct sk_buff {
struct sk_buff * next;
struct sk_buff * prev;
struct sk_buff_head * list;
struct sock *sk;
struct timeval stamp;
struct net_device *dev;
struct net_device *real_dev;
union
{
struct tcphdr *th;
struct udphdr *uh;
struct icmphdr *icmph;
struct igmphdr *igmph;
struct iphdr *ipiph;
struct spxhdr *spxh;
unsigned char *raw;
} h;
union
{
struct iphdr *iph;
struct ipv6hdr *ipv6h;
struct arphdr *arph;
struct ipxhdr *ipxh;
unsigned char *raw;
} nh;
板凳
warmharted [专家分:700] 发布于 2005-08-11 14:38:00
union
{
struct ethhdr *ethernet;
unsigned char *raw;
} mac;
struct dst_entry *dst;
char cb[48];
unsigned int len;
unsigned int data_len;
unsigned int csum;
unsigned char __unused,
cloned, pkt_type,
ip_summed; __u32 priority; atomic_t users;
unsigned short protocol;
unsigned short security;
unsigned int truesize;
unsigned char *head;
unsigned char *data;
unsigned char *tail;
unsigned char *end;
void (*destructor)(struct sk_buff *);
#ifdef CONFIG_NETFILTER
unsigned long nfmark;
__u32 nfcache;
struct nf_ct_info *nfct;
#ifdef CONFIG_NETFILTER_DEBUG
unsigned int nf_debug;
#endif
#endif
#if defined(CONFIG_HIPPI)
union{
__u32 ifield;
} private;
#endif
#ifdef CONFIG_NET_SCHED
__u32 tc_index;
#endif
};
3 楼
jackin0627 [专家分:1270] 发布于 2005-08-12 11:06:00
这个结构是Linux 用来在网络现实的各层中传递网络数据的,
我个结构的原码我也有,只是不知各成员具体表示什么意思,
有那位大侠知道的话,帮忙指点一下。
4 楼
warmharted [专家分:700] 发布于 2005-08-13 02:55:00
你的原码没有注释吗,我最近正在做这方面的项目,我用的是2.4.31.你呢?
5 楼
jackin0627 [专家分:1270] 发布于 2005-08-16 14:05:00
有一点注释,不太详细,看得不是太明白。
我也在作这方面的项目,我用的是2.4.20-8。
如果收到了一个数据包(Sk_buff格式的,IP层的),怎样转发呀,就像IP路由一样,
我来回复