void net_rx_pkt_attach_data(struct NetRxPkt *pkt, const void *data,

                               size_t len, bool strip_vlan)

{

    uint16_t tci = 0;

    uint16_t ploff;

    assert(pkt);

    pkt->vlan_stripped = false;



    if (strip_vlan) {

        pkt->vlan_stripped = eth_strip_vlan(data, pkt->ehdr_buf, &ploff, &tci);

    }



    if (pkt->vlan_stripped) {

        pkt->vec[0].iov_base = pkt->ehdr_buf;

        pkt->vec[0].iov_len = ploff - sizeof(struct vlan_header);

        pkt->vec[1].iov_base = (uint8_t *) data + ploff;

        pkt->vec[1].iov_len = len - ploff;

        pkt->vec_len = 2;

        pkt->tot_len = len - ploff + sizeof(struct eth_header);

    } else {

        pkt->vec[0].iov_base = (void *)data;

        pkt->vec[0].iov_len = len;

        pkt->vec_len = 1;

        pkt->tot_len = len;

    }



    pkt->tci = tci;

}

void net_rx_pkt_attach_data(struct NetRxPkt *pkt, const void *data,

                               size_t len, bool strip_vlan)

{

    uint16_t tci = 0;

    uint16_t ploff;

    assert(pkt);

    pkt->vlan_stripped = false;



    if (strip_vlan) {

        pkt->vlan_stripped = eth_strip_vlan(data, pkt->ehdr_buf, &ploff, &tci);

    }



    if (pkt->vlan_stripped) {

        pkt->vec[0].iov_base = pkt->ehdr_buf;

        pkt->vec[0].iov_len = ploff - sizeof(struct vlan_header);

        pkt->vec[1].iov_base = (uint8_t *) data + ploff;

        pkt->vec[1].iov_len = len - ploff;

        pkt->vec_len = 2;

        pkt->tot_len = len - ploff + sizeof(struct eth_header);

    } else {

        pkt->vec[0].iov_base = (void *)data;

        pkt->vec[0].iov_len = len;

        pkt->vec_len = 1;

        pkt->tot_len = len;

    }



    pkt->tci = tci;

}

void FUNC_0(struct NetRxPkt *VAR_0, const void *VAR_1,

                               size_t VAR_2, bool VAR_3)

{

    uint16_t tci = 0;

    uint16_t ploff;

    assert(VAR_0);

    VAR_0->vlan_stripped = false;



    if (VAR_3) {

        VAR_0->vlan_stripped = eth_strip_vlan(VAR_1, VAR_0->ehdr_buf, &ploff, &tci);

    }



    if (VAR_0->vlan_stripped) {

        VAR_0->vec[0].iov_base = VAR_0->ehdr_buf;

        VAR_0->vec[0].iov_len = ploff - sizeof(struct vlan_header);

        VAR_0->vec[1].iov_base = (uint8_t *) VAR_1 + ploff;

        VAR_0->vec[1].iov_len = VAR_2 - ploff;

        VAR_0->vec_len = 2;

        VAR_0->tot_len = VAR_2 - ploff + sizeof(struct eth_header);

    } else {

        VAR_0->vec[0].iov_base = (void *)VAR_1;

        VAR_0->vec[0].iov_len = VAR_2;

        VAR_0->vec_len = 1;

        VAR_0->tot_len = VAR_2;

    }



    VAR_0->tci = tci;

}

void FUNC_0(struct NetRxPkt *VAR_0, const void *VAR_1,
size_t VAR_2, bool VAR_3)
{ uint16_t tci = 0; uint16_t ploff; assert(VAR_0); VAR_0->vlan_stripped = false; if (VAR_3) { VAR_0->vlan_stripped = eth_strip_vlan(VAR_1, VAR_0->ehdr_buf, &ploff, &tci); } if (VAR_0->vlan_stripped) { VAR_0->vec[0].iov_base = VAR_0->ehdr_buf; VAR_0->vec[0].iov_len = ploff - sizeof(struct vlan_header); VAR_0->vec[1].iov_base = (uint8_t *) VAR_1 + ploff; VAR_0->vec[1].iov_len = VAR_2 - ploff; VAR_0->vec_len = 2; VAR_0->tot_len = VAR_2 - ploff + sizeof(struct eth_header); } else { VAR_0->vec[0].iov_base = (void *)VAR_1; VAR_0->vec[0].iov_len = VAR_2; VAR_0->vec_len = 1; VAR_0->tot_len = VAR_2; } VAR_0->tci = tci; }