> struct page *page = virt_to_page(skb->data); > int offset = (unsigned long) skb->data - (unsigned long) page_address(page); > skb_add_rx_frag(master_skb, skb_shinfo(master_skb)->nr_frags, page, offset, > skb->len) > . > . > is this the right way to do ? This will work if skb->len < PAGE_SIZE, otherwise it means it spans more than a page and you need to do skb_add_rx_frag for each PAGE_SIZE data present. Refer to Understanding Linux network internals By Christian Benvenuti p 488/489. -syed _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies