unsigned short protocol,
security;
+#if defined(CONFIG_MIPS_BRCM)
+ char extif[64];
+#endif
+
void (*destructor)(struct sk_buff *skb);
#ifdef CONFIG_NETFILTER
unsigned long nfmark;
#endif
#if defined(CONFIG_MIPS_BRCM)
-#define FROM_WAN 7
+#define FROM_WAN 0x1000
#define FREE_DATA 0
#define FREE_SKB 1
/* Call back function to return the buffer or skb itself back to the free queue
skb->tail = data + size;
skb->end = (unsigned char *) (((unsigned long) data + size + 0x0f) & ~0x0f);
skb->len = size;
- skb->rcvfrom = rcvfrom;
+ skb->nfmark |= rcvfrom;
skb->retfreeq_cb = retfreeq_cb;
skb->retfreeq_context = retfreeq_ctx;
extern void skb_split(struct sk_buff *skb,
struct sk_buff *skb1, const u32 len);
+static inline void *skb_header_pointer(const struct sk_buff *skb, int offset,
+ int len, void *buffer)
+{
+ int hlen = skb_headlen(skb);
+
+ if (offset + len <= hlen)
+ return skb->data + offset;
+
+ if (skb_copy_bits(skb, offset, buffer, len) < 0)
+ return NULL;
+
+ return buffer;
+ }
extern void skb_init(void);
extern void skb_add_mtu(int mtu);