• About structure sk_buff

    From Grant Grundler@21:1/5 to All on Tue Jun 7 02:20:01 2016
    --001a1141a590fc50540534a3f97d
    Content-Type: text/plain; charset=UTF-8

    On Mon, Jun 6, 2016 at 3:10 AM, Corcodel Marian <asd@marian1000.go.ro>
    wrote:



    On 06.06.2016 12:59, Corcodel Marian wrote:

    Hi
    Why sk_buff have memory allocated on hardware drivers on majority nic
    drivers?


    This seems like an appropriate question for netdev mailing list:
    http://vger.kernel.org/vger-lists.html#netdev

    (Tip: explain in more detail what you think is wrong with "rx mode" and
    someone should be polite enough to point out why it works. Offhand, I don't quite understand what you are trying to point out.)

    cheers,
    grant

    This is wrong on rx mode look like:

    struct sk_buff *skb;
    struct device *d = &tp->pci_dev->dev;

    data = rtl8169_align(data);
    dma_sync_single_for_cpu(d, addr, pkt_size, DMA_FROM_DEVICE);
    prefetch(data);
    skb = netdev_alloc_skb_ip_align(tp->dev, pkt_size);
    if (skb)
    memcpy(skb->data, data, pkt_size);
    dma_sync_single_for_device(d, addr, pkt_size, DMA_FROM_DEVICE);

    sk_buff is allocated on place tx mode
    and on start_xmit no need to keep sk_buff on hardware structure because
    any info is extracted from
    next level of driver.


    --
    Visit my project https://sourceforge.net/projects/network-card-driver/?source=navbar



    --001a1141a590fc50540534a3f97d
    Content-Type: text/html; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    <div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 6, 2016 at 3:10 AM, Corcodel Marian <span dir="ltr">&lt;<a href="mailto:asd@marian1000.go.ro" target="_blank">asd@marian1000.go.ro</a>&gt;</span> wrote:<br><blockquote
    class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><br>

    On 06.06.2016 12:59, Corcodel Marian wrote:<br>
    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
    Hi<br>
    Why sk_buff  have memory allocated on hardware drivers on majority nic drivers?<br></blockquote></blockquote><div><br></div><div>This seems like an appropriate question for netdev mailing list:</div><div>     <a href="http://vger.kernel.org/vger-
    lists.html#netdev">http://vger.kernel.org/vger-lists.html#netdev</a></div><div><br></div><div>(Tip: explain in more detail what you think is wrong with &quot;rx mode&quot; and someone should be polite enough to point out why it works. Offhand, I don&#39;
    t quite understand what you are trying to point out.)</div><div><br></div><div>cheers,</div><div>grant</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(
    204,204,204);padding-left:1ex"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
     This is wrong on rx mode look like:<br>

        struct sk_buff *skb;<br>
        struct device *d = &amp;tp-&gt;pci_dev-&gt;dev;<br>

        data = rtl8169_align(data);<br>
        dma_sync_single_for_cpu(d, addr, pkt_size, DMA_FROM_DEVICE);<br>
        prefetch(data);<br>
        skb = netdev_alloc_skb_ip_align(tp-&gt;dev, pkt_size);<br>
        if (skb)<br>
            memcpy(skb-&gt;data, data, pkt_size);<br>
        dma_sync_single_for_device(d, addr, pkt_size, DMA_FROM_DEVICE);<br>

    sk_buff is allocated on place tx mode<br>
    and on start_xmit  no need to keep sk_buff on hardware structure because any info is extracted from<br>
     next level of driver.<br>
    <br><span class=""><font color="#888888">
    </font></span></blockquote><span class=""><font color="#888888">

    -- <br>
    Visit my project <a href="https://sourceforge.net/projects/network-card-driver/?source=navbar" rel="noreferrer" target="_blank">https://sourceforge.net/projects/network-card-driver/?source=navbar</a><br>

    </font></span></blockquote></div><br></div></div>

    --001a1141a590fc50540534a3f97d--

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)