[linux-dvb] IPv6 support in DVB drivers

Johannes Stezenbach js at linuxtv.org
Wed Apr 20 23:16:55 CEST 2005


matthieu castet wrote:
> I don't know how is encapsulated ip in dvb, but this patch seem quite 
> ugly : why we can't read the protocol in the llc header ?
> 
> For the atm it is done like that :
>         if (!clip_vcc->encap || skb->len < RFC1483LLC_LEN || 
> memcmp(skb->data,
>             llc_oui,sizeof(llc_oui))) skb->protocol = htons(ETH_P_IP);
>         else {
>                 skb->protocol = ((u16 *) skb->data)[3];
>                 skb_pull(skb,RFC1483LLC_LEN);
>         }
> 
> where RFC1483LLC_LEN=8 and
> 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 };
> 
> In sumary if there no llc header we are in vcmux mode and we assume IPV4 
> and otherwise we read the protocol in the LLC header.

Yeah, we should do it that way. Thanks for the information!

> Also instead of removing the first 8 Bytes by hand which could be 
> expensive, couldn't use the kernel network utils like skb_pull ?

I'll simply change the skb_put() call to skip the LLC/SNAP header.

Thanks,
Johannes




More information about the linux-dvb mailing list