Commit fcf0cdc3 authored by Shmulik Ladkani's avatar Shmulik Ladkani Committed by Stefan Hajnoczi
Browse files

net/vmxnet3: Refactor 'vmxnet_rx_pkt_attach_data'



Separate RX packet protocol parsing out of 'vmxnet_rx_pkt_attach_data'.

Signed-off-by: default avatarShmulik Ladkani <shmulik.ladkani@ravellosystems.com>
Message-id: 1436864116-19154-2-git-send-email-shmulik.ladkani@ravellosystems.com
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 091f1f52
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1897,6 +1897,7 @@ vmxnet3_receive(NetClientState *nc, const uint8_t *buf, size_t size)
        get_eth_packet_type(PKT_GET_ETH_HDR(buf)));

    if (vmxnet3_rx_filter_may_indicate(s, buf, size)) {
        vmxnet_rx_pkt_set_protocols(s->rx_pkt, buf, size);
        vmxnet_rx_pkt_attach_data(s->rx_pkt, buf, size, s->rx_vlan_stripping);
        bytes_indicated = vmxnet3_indicate_packet(s) ? size : -1;
        if (bytes_indicated < size) {
+9 −3
Original line number Diff line number Diff line
@@ -92,9 +92,6 @@ void vmxnet_rx_pkt_attach_data(struct VmxnetRxPkt *pkt, const void *data,
    }

    pkt->tci = tci;

    eth_get_protocols(data, len, &pkt->isip4, &pkt->isip6,
        &pkt->isudp, &pkt->istcp);
}

void vmxnet_rx_pkt_dump(struct VmxnetRxPkt *pkt)
@@ -131,6 +128,15 @@ size_t vmxnet_rx_pkt_get_total_len(struct VmxnetRxPkt *pkt)
    return pkt->tot_len;
}

void vmxnet_rx_pkt_set_protocols(struct VmxnetRxPkt *pkt, const void *data,
                                 size_t len)
{
    assert(pkt);

    eth_get_protocols(data, len, &pkt->isip4, &pkt->isip6,
        &pkt->isudp, &pkt->istcp);
}

void vmxnet_rx_pkt_get_protocols(struct VmxnetRxPkt *pkt,
                                 bool *isip4, bool *isip6,
                                 bool *isudp, bool *istcp)
+11 −0
Original line number Diff line number Diff line
@@ -54,6 +54,17 @@ void vmxnet_rx_pkt_init(struct VmxnetRxPkt **pkt, bool has_virt_hdr);
 */
size_t vmxnet_rx_pkt_get_total_len(struct VmxnetRxPkt *pkt);

/**
 * parse and set packet analysis results
 *
 * @pkt:            packet
 * @data:           pointer to the data buffer to be parsed
 * @len:            data length
 *
 */
void vmxnet_rx_pkt_set_protocols(struct VmxnetRxPkt *pkt, const void *data,
                                 size_t len);

/**
 * fetches packet analysis results
 *