#ifdef WLAN_ROUTE_EF
/**
* wbuf 头结构定义.
*/
struct wbuf_buff {
/*
* Firstly cache line.
* (assume cache line size 32 Bytes).
*/
struct ef_pkt_buf_st
*nextPkt; /* 0: 用于组成buffer链表或者packet链表. */
u8 poolId; /* 4: 所属的buffer池.
创建时分配, 生存周期内不能修改. */
u8 pktType; /* 5: 报文类型. */
u8 bufDataType; /* 6: 最后一个使用buf的模块号(DEBUG). */
u8 pkt_sequence; /* 7: 最后一个完成报文处理的模块号. */
u16 dataOffset; /* 8: buffer数据区偏移. */
u8 encrypto_flag : 4; /* 10:for ipsec. */
u8 chksumErr:1; /* IpV4的IP头checksum错误标志. */
u8 prio:3; /* 报文的优先级. */
u8 ipsecFlag; /* 11:ipSec对报文处理的中间结果标记. */
u16 pktlen; /* 12:报文长度. */
u16 ipOffset; /* 9: ip头偏移. */
/* XXX */
u8 vrf_idx; /* 14:源逻辑接口. */
void *src_intf; /* 16:源接口struct ef_intfcb *src_intf. */
u32 dest_ip; /* 20:IP地址. */
void *dest_intf; /* 24:出接口struct ef_intfcb *dest_intf. */
u32 adj; /* 28:邻接表. */
/*
* Second cache line.
*/
u32 fpm_ctlw; /* 32:For 流平台. */
u32 fpm_hash; /* 36:For 流平台. */
u32 qosQueMark; /* 40:QOS 队列标记 */
u8 reserve_reason; /* 44:报文上送进程处理的原因. */
u8 pad_char[3]; /* 45-47: 保留未用. */
uint pad_uint[3]; /* 48-63: */
/* 48bytes */
struct wbuf_buff *next; /* Next buffer in list */
struct wbuf_buff *prev; /* Previous buffer in list */
struct wbuf_buff_head *list; /* List we are on */
uchar cb[WLAN_CB_LEN]; /* 直接映射skb->cb */
uchar *content; /* content/bf指针 */
uchar *head; /* Head of buffer */
uchar *data; /* Data head pointer */
uchar *tail; /* Tail pointer */
uchar *end; /* End pointer */
uint len; /* Length of actual data,from data to tail */
uchar wbuf_reserver[2]; /* wbuf_reserver */
}____cacheline_aligned;
typedef struct wbuf_buff * wbuf_t;
#else
typedef struct sk_buff * wbuf_t;
#endif
================================================================================
/*************************注意 typedef问题啊,悲剧浪费了不少时间*********************************/
struct wbuf_buff *
ieee80211_beacon_alloc(struct ieee80211_node *ni,
struct ieee80211_beacon_offsets *bo)
wbuf_t
ieee80211_beacon_alloc(struct ieee80211_node *ni,
struct ieee80211_beacon_offsets *bo)
{
阅读(1016) | 评论(0) | 转发(0) |