> On Jul 14, 2015, at 11:55, Shmulik Ladkani > <shmulik.ladk...@ravellosystems.com> wrote: > > Separate RX packet protocol parsing out of 'vmxnet_rx_pkt_attach_data'. >
Ack > Signed-off-by: Shmulik Ladkani <shmulik.ladk...@ravellosystems.com> > --- > 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 > -- > 1.9.1 >