return 0;
}
+static const unsigned char llc_oui[] = {
+ 0xaa, /* DSAP: non-ISO */
+ 0xaa, /* SSAP: non-ISO */
+ 0x03, /* Ctrl: Unnumbered Information Command PDU */
+ 0x00, /* OUI: EtherType */
+ 0x00,
+ 0x00 };
static void clip_push(struct atm_vcc *vcc,struct sk_buff *skb)
{
#endif
-const unsigned char llc_oui[] = {
- 0xaa, /* DSAP: non-ISO */
- 0xaa, /* SSAP: non-ISO */
- 0x03, /* Ctrl: Unnumbered Information Command PDU */
- 0x00, /* OUI: EtherType */
- 0x00,
- 0x00 };
-
-
/*
* skb_migrate appends the list at "from" to "to", emptying "from" in the
* process. skb_migrate is atomic with respect to all other skb operations on
}
-EXPORT_SYMBOL(llc_oui);
EXPORT_SYMBOL(skb_migrate);
tasklet_schedule(&p->task);
}
+static const u8 llc_oui_ip[] = {
+ 0xaa, /* DSAP: non-ISO */
+ 0xaa, /* SSAP: non-ISO */
+ 0x03, /* Ctrl: Unnumbered Information Command PDU */
+ 0x00, /* OUI: EtherType */
+ 0x00, 0x00,
+ 0x08, 0x00 }; /* Ethertype IP (0800) */
static int atm_tc_change(struct Qdisc *sch, u32 classid, u32 parent,
struct rtattr **tca, unsigned long *arg)
flow->next = p->link.next;
p->link.next = flow;
flow->hdr_len = hdr_len;
- if (hdr) memcpy(flow->hdr,hdr,hdr_len);
- else {
- memcpy(flow->hdr,llc_oui,sizeof(llc_oui));
- ((u16 *) flow->hdr)[3] = htons(ETH_P_IP);
- }
+ if (hdr)
+ memcpy(flow->hdr,hdr,hdr_len);
+ else
+ memcpy(flow->hdr,llc_oui_ip,sizeof(llc_oui_ip));
*arg = (unsigned long) flow;
return 0;
err_out: