> On Mar 3, 2017, at 4:45 AM, Pascal Mazon <pascal.ma...@6wind.com> wrote: > > In the next patch, access to struct pmd_internals will be necessary in > tap_flow.c to store the flows. > > Signed-off-by: Pascal Mazon <pascal.ma...@6wind.com> > Acked-by: Olga Shern <ol...@mellanox.com> > --- > drivers/net/tap/Makefile | 1 + > drivers/net/tap/rte_eth_tap.c | 34 ++------------------ > drivers/net/tap/tap.h | 73 +++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 76 insertions(+), 32 deletions(-) > create mode 100644 drivers/net/tap/tap.h > > diff --git a/drivers/net/tap/Makefile b/drivers/net/tap/Makefile > index e18f30c56f52..bdbe69e62a4e 100644 > --- a/drivers/net/tap/Makefile > +++ b/drivers/net/tap/Makefile > @@ -40,6 +40,7 @@ EXPORT_MAP := rte_pmd_tap_version.map > LIBABIVER := 1 > > CFLAGS += -O3 > +CFLAGS += -I$(SRCDIR) > CFLAGS += $(WERROR_FLAGS) > > # > diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c > index 3fd057225ab3..fa57d645f3b1 100644 > --- a/drivers/net/tap/rte_eth_tap.c > +++ b/drivers/net/tap/rte_eth_tap.c > @@ -51,6 +51,8 @@ > #include <linux/if_ether.h> > #include <fcntl.h> > > +#include <tap.h> > + > /* Linux based path to the TUN device */ > #define TUN_TAP_DEV_PATH "/dev/net/tun" > #define DEFAULT_TAP_NAME "dtap" > @@ -83,38 +85,6 @@ static struct rte_eth_link pmd_link = { > .link_autoneg = ETH_LINK_SPEED_AUTONEG > }; > > -struct pkt_stats { > - uint64_t opackets; /* Number of output packets */ > - uint64_t ipackets; /* Number of input packets */ > - uint64_t obytes; /* Number of bytes on output */ > - uint64_t ibytes; /* Number of bytes on input */ > - uint64_t errs; /* Number of error packets */ > -}; > - > -struct rx_queue { > - struct rte_mempool *mp; /* Mempool for RX packets */ > - uint16_t in_port; /* Port ID */ > - int fd; > - > - struct pkt_stats stats; /* Stats for this RX queue */ > -}; > - > -struct tx_queue { > - int fd; > - struct pkt_stats stats; /* Stats for this TX queue */ > -}; > - > -struct pmd_internals { > - char name[RTE_ETH_NAME_MAX_LEN]; /* Internal Tap device name */ > - uint16_t nb_queues; /* Number of queues supported */ > - struct ether_addr eth_addr; /* Mac address of the device port */ > - > - int if_index; /* IF_INDEX for the port */ > - > - struct rx_queue rxq[RTE_PMD_TAP_MAX_QUEUES]; /* List of RX queues */ > - struct tx_queue txq[RTE_PMD_TAP_MAX_QUEUES]; /* List of TX queues */ > -}; > - > /* Tun/Tap allocation routine > * > * name is the number of the interface to use, unless NULL to take the host > diff --git a/drivers/net/tap/tap.h b/drivers/net/tap/tap.h > new file mode 100644 > index 000000000000..88f62b895feb > --- /dev/null > +++ b/drivers/net/tap/tap.h > @@ -0,0 +1,73 @@ > +/*- > + * BSD LICENSE > + * > + * Copyright 2017 6WIND S.A. > + * Copyright 2017 Mellanox. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * > + * * Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * * Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in > + * the documentation and/or other materials provided with the > + * distribution. > + * * Neither the name of 6WIND S.A. nor the names of its > + * contributors may be used to endorse or promote products derived > + * from this software without specific prior written permission. > + * > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS > + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT > + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, > + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT > + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, > + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY > + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE > + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + */ > + > +#ifndef _TAP_H_ > +#define _TAP_H_ > + > +#include <inttypes.h> > + > +#include <rte_ethdev.h> > +#include <rte_ether.h> > + > +#define RTE_PMD_TAP_MAX_QUEUES 16 > + > +struct pkt_stats { > + uint64_t opackets; /* Number of output packets */ > + uint64_t ipackets; /* Number of input packets */ > + uint64_t obytes; /* Number of bytes on output */ > + uint64_t ibytes; /* Number of bytes on input */ > + uint64_t errs; /* Number of error packets */ > +}; > + > +struct rx_queue { > + struct rte_mempool *mp; /* Mempool for RX packets */ > + uint16_t in_port; /* Port ID */ > + int fd; > + struct pkt_stats stats; /* Stats for this RX queue */ > +}; > + > +struct tx_queue { > + int fd; > + struct pkt_stats stats; /* Stats for this TX queue */ > +}; > + > +struct pmd_internals { > + char name[RTE_ETH_NAME_MAX_LEN]; /* Internal Tap device name */ > + uint16_t nb_queues; /* Number of queues supported */ > + struct ether_addr eth_addr; /* Mac address of the device port */ > + int if_index; /* IF_INDEX for the port */ > + struct rx_queue rxq[RTE_PMD_TAP_MAX_QUEUES]; /* List of RX queues */ > + struct tx_queue txq[RTE_PMD_TAP_MAX_QUEUES]; /* List of TX queues */ > +};
I guess I am going to be a bit picky here on the formatting. Moving the code from .c to .h you compress a lot of white space out and now I think it is very hard to read. Can you add back some of the white space for readability. > + > +#endif /* _TAP_H_ */ > -- > 2.8.0.rc0 > Regards, Keith