[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL for-2.4 2/7] net/vmxnet3: Refactor 'vmxnet_rx_pkt_att
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL for-2.4 2/7] net/vmxnet3: Refactor 'vmxnet_rx_pkt_attach_data' |
Date: |
Mon, 20 Jul 2015 18:25:20 +0100 |
From: Shmulik Ladkani <address@hidden>
Separate RX packet protocol parsing out of 'vmxnet_rx_pkt_attach_data'.
Signed-off-by: Shmulik Ladkani <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
hw/net/vmxnet3.c | 1 +
hw/net/vmxnet_rx_pkt.c | 12 +++++++++---
hw/net/vmxnet_rx_pkt.h | 11 +++++++++++
3 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
index 706e060..dd22a0a 100644
--- a/hw/net/vmxnet3.c
+++ b/hw/net/vmxnet3.c
@@ -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) {
diff --git a/hw/net/vmxnet_rx_pkt.c b/hw/net/vmxnet_rx_pkt.c
index acbca6a..aa54629 100644
--- a/hw/net/vmxnet_rx_pkt.c
+++ b/hw/net/vmxnet_rx_pkt.c
@@ -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)
diff --git a/hw/net/vmxnet_rx_pkt.h b/hw/net/vmxnet_rx_pkt.h
index 5f8352a..a425846 100644
--- a/hw/net/vmxnet_rx_pkt.h
+++ b/hw/net/vmxnet_rx_pkt.h
@@ -55,6 +55,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
*
* @pkt: packet
--
2.4.3
- [Qemu-devel] [PULL for-2.4 0/7] Net patches, Stefan Hajnoczi, 2015/07/20
- [Qemu-devel] [PULL for-2.4 1/7] socket: pass correct size in net_socket_send(), Stefan Hajnoczi, 2015/07/20
- [Qemu-devel] [PULL for-2.4 2/7] net/vmxnet3: Refactor 'vmxnet_rx_pkt_attach_data',
Stefan Hajnoczi <=
- [Qemu-devel] [PULL for-2.4 3/7] net/vmxnet3: Fix RX TCP/UDP checksum on partially summed packets, Stefan Hajnoczi, 2015/07/20
- [Qemu-devel] [PULL for-2.4 4/7] musicpal: Drop eth_can_receive, Stefan Hajnoczi, 2015/07/20
- [Qemu-devel] [PULL for-2.4 5/7] etraxfs_eth: Drop eth_can_receive, Stefan Hajnoczi, 2015/07/20
- [Qemu-devel] [PULL for-2.4 6/7] lan9118: Drop lan9118_can_receive, Stefan Hajnoczi, 2015/07/20
- [Qemu-devel] [PULL for-2.4 7/7] net: Flush queued packets when guest resumes, Stefan Hajnoczi, 2015/07/20
- Re: [Qemu-devel] [PULL for-2.4 0/7] Net patches, Peter Maydell, 2015/07/21