> +/* Pass the DL packet to the netif layer. */ > +static int mux_net_receive(struct iosm_mux *ipc_mux, int if_id, > + struct iosm_wwan *wwan, u32 offset, u8 service_class, > + struct sk_buff *skb) > +{ > + /* for "zero copy" use clone */ > + struct sk_buff *dest_skb = skb_clone(skb, GFP_ATOMIC); > + > + if (!dest_skb) > + return -1; > + > + skb_pull(dest_skb, offset); > + > + skb_set_tail_pointer(dest_skb, dest_skb->len); > + > + /* Goto the start of the Ethernet header. */ > + skb_push(dest_skb, ETH_HLEN); > + > + /* map session to vlan */ > + __vlan_hwaccel_put_tag(dest_skb, htons(ETH_P_8021Q), if_id + 1); Well, that explains a bit, my comments on the netdev patch. So there is no Ethernet header on the 'wire'. This is not an Ethernet device at all. More in the documentation patch... Andrew