> On 8 Mar 2016, at 05:10 AM, Jason Wang <jasow...@redhat.com> wrote: > > > > On 02/23/2016 01:37 AM, Leonid Bloch wrote: >> From: Dmitry Fleytman <dmitry.fleyt...@ravellosystems.com> >> >> This patch drops "vmx" prefix from packet abstrations names >> to emphasize the fact they are generic and not tied to any >> specific network device. >> >> These abstrations will be reused by e1000e emulation implementation >> introduced by following patches so their names need generalization. >> >> This patch (except renamed files, adjusted comments and changes in >> MAINTAINTERS) >> was produced by: >> >> git grep -lz 'vmxnet_tx_pkt' | xargs -0 perl -i'' -pE >> "s/vmxnet_tx_pkt/net_tx_pkt/g" >> git grep -lz 'vmxnet_rx_pkt' | xargs -0 perl -i'' -pE >> "s/vmxnet_rx_pkt/net_rx_pkt/g" >> git grep -lz 'VmxnetTxPkt' | xargs -0 perl -i'' -pE >> "s/VmxnetTxPkt/NetTxPkt/g" >> git grep -lz 'VMXNET_TX_PKT' | xargs -0 perl -i'' -pE >> "s/VMXNET_TX_PKT/NET_TX_PKT/g" >> git grep -lz 'VmxnetRxPkt' | xargs -0 perl -i'' -pE >> "s/VmxnetRxPkt/NetRxPkt/g" >> git grep -lz 'VMXNET_RX_PKT' | xargs -0 perl -i'' -pE >> "s/VMXNET_RX_PKT/NET_RX_PKT/g" >> sed -ie 's/VMXNET_/NET_/g' hw/net/vmxnet_rx_pkt.c >> sed -ie 's/VMXNET_/NET_/g' hw/net/vmxnet_tx_pkt.c >> >> Signed-off-by: Dmitry Fleytman <dmitry.fleyt...@ravellosystems.com> >> Signed-off-by: Leonid Bloch <leonid.bl...@ravellosystems.com> >> --- >> MAINTAINERS | 8 + >> hw/net/Makefile.objs | 2 +- >> hw/net/net_rx_pkt.c | 187 ++++++++++++++++ >> hw/net/net_rx_pkt.h | 176 +++++++++++++++ >> hw/net/net_tx_pkt.c | 581 >> +++++++++++++++++++++++++++++++++++++++++++++++++ >> hw/net/net_tx_pkt.h | 148 +++++++++++++ >> hw/net/vmxnet3.c | 88 ++++---- >> hw/net/vmxnet_rx_pkt.c | 187 ---------------- >> hw/net/vmxnet_rx_pkt.h | 176 --------------- >> hw/net/vmxnet_tx_pkt.c | 581 >> ------------------------------------------------- >> hw/net/vmxnet_tx_pkt.h | 148 ------------- >> tests/Makefile | 4 +- >> 12 files changed, 1147 insertions(+), 1139 deletions(-) >> create mode 100644 hw/net/net_rx_pkt.c >> create mode 100644 hw/net/net_rx_pkt.h >> create mode 100644 hw/net/net_tx_pkt.c >> create mode 100644 hw/net/net_tx_pkt.h >> delete mode 100644 hw/net/vmxnet_rx_pkt.c >> delete mode 100644 hw/net/vmxnet_rx_pkt.h >> delete mode 100644 hw/net/vmxnet_tx_pkt.c >> delete mode 100644 hw/net/vmxnet_tx_pkt.h >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 02710f8..3a7c108 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -937,6 +937,14 @@ S: Maintained >> F: hw/*/xilinx_* >> F: include/hw/xilinx.h >> >> +Network packet abstractions >> +M: Dmitry Fleytman <dmi...@daynix.com> >> +S: Maintained >> +F: include/net/eth.h >> +F: net/eth.c >> +F: hw/net/net_rx_pkt* >> +F: hw/net/net_tx_pkt* >> + > > [...] > >> >> +} >> + >> +bool net_tx_pkt_add_raw_fragment(struct NetTxPkt *pkt, hwaddr pa, >> + size_t len) >> +{ >> + hwaddr mapped_len = 0; >> + struct iovec *ventry; >> + assert(pkt); >> + assert(pkt->max_raw_frags > pkt->raw_frags); >> + >> + if (!len) { >> + return true; >> + } >> + >> + ventry = &pkt->raw[pkt->raw_frags]; >> + mapped_len = len; >> + >> + ventry->iov_base = cpu_physical_memory_map(pa, &mapped_len, false); > > I see an interesting issue here. The e1000e codes use pci_dma_XXX > helpers, so actually it was ready for IOMMU. We probably want that here > also, otherwise e1000e with IOMMU may break. And since the codes were > shared with vmxnet3, so probably need another patch to convert vmxnet3 > to use dma helpers.
Done. Thanks. > > [...]