Expose the ethernet header so that igb can utilize it to perform the internal routing among its SR-IOV functions.
Signed-off-by: Gal Hammer <gal.ham...@sap.com> Signed-off-by: Marcel Apfelbaum <marcel.apfelb...@gmail.com> Signed-off-by: Akihiko Odaki <akihiko.od...@daynix.com> --- hw/net/net_tx_pkt.c | 6 ++++++ hw/net/net_tx_pkt.h | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/hw/net/net_tx_pkt.c b/hw/net/net_tx_pkt.c index 2533ea2700..2c57c8d642 100644 --- a/hw/net/net_tx_pkt.c +++ b/hw/net/net_tx_pkt.c @@ -278,6 +278,12 @@ bool net_tx_pkt_parse(struct NetTxPkt *pkt) } } +struct eth_header *net_tx_pkt_get_eth_hdr(struct NetTxPkt *pkt) +{ + assert(pkt); + return (struct eth_header *)&pkt->l2_hdr; +} + struct virtio_net_hdr *net_tx_pkt_get_vhdr(struct NetTxPkt *pkt) { assert(pkt); diff --git a/hw/net/net_tx_pkt.h b/hw/net/net_tx_pkt.h index 4ec8bbe9bd..4e70453c12 100644 --- a/hw/net/net_tx_pkt.h +++ b/hw/net/net_tx_pkt.h @@ -44,6 +44,14 @@ void net_tx_pkt_init(struct NetTxPkt **pkt, PCIDevice *pci_dev, */ void net_tx_pkt_uninit(struct NetTxPkt *pkt); +/** + * get ethernet header + * + * @pkt: packet + * @ret: ethernet header + */ +struct eth_header *net_tx_pkt_get_eth_hdr(struct NetTxPkt *pkt); + /** * get virtio header * -- 2.39.0