Message ID | 1463647705-7056-1-git-send-email-matias.elo@nokia.com |
---|---|
State | Accepted |
Commit | fad5fec34ca3d2fd50ede3fb32ca96819b5b079b |
Headers | show |
For this series: Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> On Thu, May 19, 2016 at 3:48 AM, Matias Elo <matias.elo@nokia.com> wrote: > Add new function pointer 'print' to pktio_if_ops_t. This can > be used to print pktio type specific debug information. > > In case of netmap, it is used to print the current RSS > configuration. rss_conf_print() output format was modified > to be in line with odp_pktio_print(). > > Signed-off-by: Matias Elo <matias.elo@nokia.com> > --- > platform/linux-generic/include/odp_packet_io_internal.h | 1 + > platform/linux-generic/odp_packet_io.c | 7 ++++++- > platform/linux-generic/pktio/ipc.c | 1 + > platform/linux-generic/pktio/loop.c | 1 + > platform/linux-generic/pktio/netmap.c | 10 ++++++++++ > platform/linux-generic/pktio/pcap.c | 1 + > platform/linux-generic/pktio/socket.c | 17 > +++++++++-------- > platform/linux-generic/pktio/socket_mmap.c | 1 + > platform/linux-generic/pktio/tap.c | 1 + > 9 files changed, 31 insertions(+), 9 deletions(-) > > diff --git a/platform/linux-generic/include/odp_packet_io_internal.h > b/platform/linux-generic/include/odp_packet_io_internal.h > index 7dd578b..5adfc7e 100644 > --- a/platform/linux-generic/include/odp_packet_io_internal.h > +++ b/platform/linux-generic/include/odp_packet_io_internal.h > @@ -175,6 +175,7 @@ int is_free(pktio_entry_t *entry); > > typedef struct pktio_if_ops { > const char *name; > + void (*print)(pktio_entry_t *pktio_entry); > int (*init_global)(void); > int (*init_local)(void); > int (*term)(void); > diff --git a/platform/linux-generic/odp_packet_io.c > b/platform/linux-generic/odp_packet_io.c > index db5a3df..15763df 100644 > --- a/platform/linux-generic/odp_packet_io.c > +++ b/platform/linux-generic/odp_packet_io.c > @@ -1028,7 +1028,12 @@ void odp_pktio_print(odp_pktio_t id) > odp_pktio_promisc_mode(id) ? "yes" : "no"); > str[len] = '\0'; > > - ODP_PRINT("\n%s\n", str); > + ODP_PRINT("\n%s", str); > + > + if (entry->s.ops->print) > + entry->s.ops->print(entry); > + > + ODP_PRINT("\n"); > } > > int odp_pktio_term_global(void) > diff --git a/platform/linux-generic/pktio/ipc.c > b/platform/linux-generic/pktio/ipc.c > index 12cc286..d499a19 100644 > --- a/platform/linux-generic/pktio/ipc.c > +++ b/platform/linux-generic/pktio/ipc.c > @@ -726,6 +726,7 @@ static int ipc_close(pktio_entry_t *pktio_entry) > > const pktio_if_ops_t ipc_pktio_ops = { > .name = "ipc", > + .print = NULL, > .init_global = NULL, > .init_local = NULL, > .term = NULL, > diff --git a/platform/linux-generic/pktio/loop.c > b/platform/linux-generic/pktio/loop.c > index 38acff1..cbb5ea9 100644 > --- a/platform/linux-generic/pktio/loop.c > +++ b/platform/linux-generic/pktio/loop.c > @@ -206,6 +206,7 @@ static int loopback_stats_reset(pktio_entry_t > *pktio_entry ODP_UNUSED) > > const pktio_if_ops_t loopback_pktio_ops = { > .name = "loop", > + .print = NULL, > .init_global = NULL, > .init_local = NULL, > .term = NULL, > diff --git a/platform/linux-generic/pktio/netmap.c > b/platform/linux-generic/pktio/netmap.c > index 3e6a4f0..1042fd1 100644 > --- a/platform/linux-generic/pktio/netmap.c > +++ b/platform/linux-generic/pktio/netmap.c > @@ -879,8 +879,18 @@ static int netmap_stats_reset(pktio_entry_t > *pktio_entry) > pktio_entry->s.pkt_nm.sockfd); > } > > +static void netmap_print(pktio_entry_t *pktio_entry) > +{ > + odp_pktin_hash_proto_t hash_proto; > + > + if (rss_conf_get_fd(pktio_entry->s.pkt_nm.sockfd, > + pktio_entry->s.pkt_nm.if_name, &hash_proto)) > + rss_conf_print(&hash_proto); > +} > + > const pktio_if_ops_t netmap_pktio_ops = { > .name = "netmap", > + .print = netmap_print, > .init_global = NULL, > .init_local = NULL, > .term = NULL, > diff --git a/platform/linux-generic/pktio/pcap.c > b/platform/linux-generic/pktio/pcap.c > index aab6b42..aeb20ed 100644 > --- a/platform/linux-generic/pktio/pcap.c > +++ b/platform/linux-generic/pktio/pcap.c > @@ -421,6 +421,7 @@ static int pcapif_stats(pktio_entry_t *pktio_entry, > > const pktio_if_ops_t pcap_pktio_ops = { > .name = "pcap", > + .print = NULL, > .init_global = NULL, > .init_local = NULL, > .open = pcapif_init, > diff --git a/platform/linux-generic/pktio/socket.c > b/platform/linux-generic/pktio/socket.c > index a0aa9af..c0de59f 100644 > --- a/platform/linux-generic/pktio/socket.c > +++ b/platform/linux-generic/pktio/socket.c > @@ -419,29 +419,29 @@ void rss_conf_print(const odp_pktin_hash_proto_t > *hash_proto) > int len = 0; > int n = max_len - 1; > > - len += snprintf(&str[len], n - len, "RSS conf\n"); > + len += snprintf(&str[len], n - len, " rss conf\n"); > > if (hash_proto->proto.ipv4) > len += snprintf(&str[len], n - len, > - " IPV4\n"); > + " IPV4\n"); > if (hash_proto->proto.ipv4_tcp) > len += snprintf(&str[len], n - len, > - " IPV4 TCP\n"); > + " IPV4 TCP\n"); > if (hash_proto->proto.ipv4_udp) > len += snprintf(&str[len], n - len, > - " IPV4 UDP\n"); > + " IPV4 UDP\n"); > if (hash_proto->proto.ipv6) > len += snprintf(&str[len], n - len, > - " IPV6\n"); > + " IPV6\n"); > if (hash_proto->proto.ipv6_tcp) > len += snprintf(&str[len], n - len, > - " IPV6 TCP\n"); > + " IPV6 TCP\n"); > if (hash_proto->proto.ipv6_udp) > len += snprintf(&str[len], n - len, > - " IPV6 UDP\n"); > + " IPV6 UDP\n"); > str[len] = '\0'; > > - ODP_PRINT("\n%s\n", str); > + ODP_PRINT("%s\n", str); > } > > /* > @@ -868,6 +868,7 @@ static int sock_stats_reset(pktio_entry_t *pktio_entry) > > const pktio_if_ops_t sock_mmsg_pktio_ops = { > .name = "socket", > + .print = NULL, > .init_global = NULL, > .init_local = NULL, > .term = NULL, > diff --git a/platform/linux-generic/pktio/socket_mmap.c > b/platform/linux-generic/pktio/socket_mmap.c > index 22a762f..c14ec9f 100644 > --- a/platform/linux-generic/pktio/socket_mmap.c > +++ b/platform/linux-generic/pktio/socket_mmap.c > @@ -672,6 +672,7 @@ static int sock_mmap_stats_reset(pktio_entry_t > *pktio_entry) > > const pktio_if_ops_t sock_mmap_pktio_ops = { > .name = "socket_mmap", > + .print = NULL, > .init_global = NULL, > .init_local = NULL, > .term = NULL, > diff --git a/platform/linux-generic/pktio/tap.c > b/platform/linux-generic/pktio/tap.c > index 45c4ae1..4ca11e6 100644 > --- a/platform/linux-generic/pktio/tap.c > +++ b/platform/linux-generic/pktio/tap.c > @@ -338,6 +338,7 @@ static int tap_capability(pktio_entry_t *pktio_entry > ODP_UNUSED, > > const pktio_if_ops_t tap_pktio_ops = { > .name = "tap", > + .print = NULL, > .init_global = NULL, > .init_local = NULL, > .term = NULL, > -- > 1.9.1 > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/lng-odp >
Merged, Maxim. On 05/20/16 03:03, Bill Fischofer wrote: > For this series: > > Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> > > On Thu, May 19, 2016 at 3:48 AM, Matias Elo <matias.elo@nokia.com> wrote: > >> Add new function pointer 'print' to pktio_if_ops_t. This can >> be used to print pktio type specific debug information. >> >> In case of netmap, it is used to print the current RSS >> configuration. rss_conf_print() output format was modified >> to be in line with odp_pktio_print(). >> >> Signed-off-by: Matias Elo <matias.elo@nokia.com> >> --- >> platform/linux-generic/include/odp_packet_io_internal.h | 1 + >> platform/linux-generic/odp_packet_io.c | 7 ++++++- >> platform/linux-generic/pktio/ipc.c | 1 + >> platform/linux-generic/pktio/loop.c | 1 + >> platform/linux-generic/pktio/netmap.c | 10 ++++++++++ >> platform/linux-generic/pktio/pcap.c | 1 + >> platform/linux-generic/pktio/socket.c | 17 >> +++++++++-------- >> platform/linux-generic/pktio/socket_mmap.c | 1 + >> platform/linux-generic/pktio/tap.c | 1 + >> 9 files changed, 31 insertions(+), 9 deletions(-) >> >> diff --git a/platform/linux-generic/include/odp_packet_io_internal.h >> b/platform/linux-generic/include/odp_packet_io_internal.h >> index 7dd578b..5adfc7e 100644 >> --- a/platform/linux-generic/include/odp_packet_io_internal.h >> +++ b/platform/linux-generic/include/odp_packet_io_internal.h >> @@ -175,6 +175,7 @@ int is_free(pktio_entry_t *entry); >> >> typedef struct pktio_if_ops { >> const char *name; >> + void (*print)(pktio_entry_t *pktio_entry); >> int (*init_global)(void); >> int (*init_local)(void); >> int (*term)(void); >> diff --git a/platform/linux-generic/odp_packet_io.c >> b/platform/linux-generic/odp_packet_io.c >> index db5a3df..15763df 100644 >> --- a/platform/linux-generic/odp_packet_io.c >> +++ b/platform/linux-generic/odp_packet_io.c >> @@ -1028,7 +1028,12 @@ void odp_pktio_print(odp_pktio_t id) >> odp_pktio_promisc_mode(id) ? "yes" : "no"); >> str[len] = '\0'; >> >> - ODP_PRINT("\n%s\n", str); >> + ODP_PRINT("\n%s", str); >> + >> + if (entry->s.ops->print) >> + entry->s.ops->print(entry); >> + >> + ODP_PRINT("\n"); >> } >> >> int odp_pktio_term_global(void) >> diff --git a/platform/linux-generic/pktio/ipc.c >> b/platform/linux-generic/pktio/ipc.c >> index 12cc286..d499a19 100644 >> --- a/platform/linux-generic/pktio/ipc.c >> +++ b/platform/linux-generic/pktio/ipc.c >> @@ -726,6 +726,7 @@ static int ipc_close(pktio_entry_t *pktio_entry) >> >> const pktio_if_ops_t ipc_pktio_ops = { >> .name = "ipc", >> + .print = NULL, >> .init_global = NULL, >> .init_local = NULL, >> .term = NULL, >> diff --git a/platform/linux-generic/pktio/loop.c >> b/platform/linux-generic/pktio/loop.c >> index 38acff1..cbb5ea9 100644 >> --- a/platform/linux-generic/pktio/loop.c >> +++ b/platform/linux-generic/pktio/loop.c >> @@ -206,6 +206,7 @@ static int loopback_stats_reset(pktio_entry_t >> *pktio_entry ODP_UNUSED) >> >> const pktio_if_ops_t loopback_pktio_ops = { >> .name = "loop", >> + .print = NULL, >> .init_global = NULL, >> .init_local = NULL, >> .term = NULL, >> diff --git a/platform/linux-generic/pktio/netmap.c >> b/platform/linux-generic/pktio/netmap.c >> index 3e6a4f0..1042fd1 100644 >> --- a/platform/linux-generic/pktio/netmap.c >> +++ b/platform/linux-generic/pktio/netmap.c >> @@ -879,8 +879,18 @@ static int netmap_stats_reset(pktio_entry_t >> *pktio_entry) >> pktio_entry->s.pkt_nm.sockfd); >> } >> >> +static void netmap_print(pktio_entry_t *pktio_entry) >> +{ >> + odp_pktin_hash_proto_t hash_proto; >> + >> + if (rss_conf_get_fd(pktio_entry->s.pkt_nm.sockfd, >> + pktio_entry->s.pkt_nm.if_name, &hash_proto)) >> + rss_conf_print(&hash_proto); >> +} >> + >> const pktio_if_ops_t netmap_pktio_ops = { >> .name = "netmap", >> + .print = netmap_print, >> .init_global = NULL, >> .init_local = NULL, >> .term = NULL, >> diff --git a/platform/linux-generic/pktio/pcap.c >> b/platform/linux-generic/pktio/pcap.c >> index aab6b42..aeb20ed 100644 >> --- a/platform/linux-generic/pktio/pcap.c >> +++ b/platform/linux-generic/pktio/pcap.c >> @@ -421,6 +421,7 @@ static int pcapif_stats(pktio_entry_t *pktio_entry, >> >> const pktio_if_ops_t pcap_pktio_ops = { >> .name = "pcap", >> + .print = NULL, >> .init_global = NULL, >> .init_local = NULL, >> .open = pcapif_init, >> diff --git a/platform/linux-generic/pktio/socket.c >> b/platform/linux-generic/pktio/socket.c >> index a0aa9af..c0de59f 100644 >> --- a/platform/linux-generic/pktio/socket.c >> +++ b/platform/linux-generic/pktio/socket.c >> @@ -419,29 +419,29 @@ void rss_conf_print(const odp_pktin_hash_proto_t >> *hash_proto) >> int len = 0; >> int n = max_len - 1; >> >> - len += snprintf(&str[len], n - len, "RSS conf\n"); >> + len += snprintf(&str[len], n - len, " rss conf\n"); >> >> if (hash_proto->proto.ipv4) >> len += snprintf(&str[len], n - len, >> - " IPV4\n"); >> + " IPV4\n"); >> if (hash_proto->proto.ipv4_tcp) >> len += snprintf(&str[len], n - len, >> - " IPV4 TCP\n"); >> + " IPV4 TCP\n"); >> if (hash_proto->proto.ipv4_udp) >> len += snprintf(&str[len], n - len, >> - " IPV4 UDP\n"); >> + " IPV4 UDP\n"); >> if (hash_proto->proto.ipv6) >> len += snprintf(&str[len], n - len, >> - " IPV6\n"); >> + " IPV6\n"); >> if (hash_proto->proto.ipv6_tcp) >> len += snprintf(&str[len], n - len, >> - " IPV6 TCP\n"); >> + " IPV6 TCP\n"); >> if (hash_proto->proto.ipv6_udp) >> len += snprintf(&str[len], n - len, >> - " IPV6 UDP\n"); >> + " IPV6 UDP\n"); >> str[len] = '\0'; >> >> - ODP_PRINT("\n%s\n", str); >> + ODP_PRINT("%s\n", str); >> } >> >> /* >> @@ -868,6 +868,7 @@ static int sock_stats_reset(pktio_entry_t *pktio_entry) >> >> const pktio_if_ops_t sock_mmsg_pktio_ops = { >> .name = "socket", >> + .print = NULL, >> .init_global = NULL, >> .init_local = NULL, >> .term = NULL, >> diff --git a/platform/linux-generic/pktio/socket_mmap.c >> b/platform/linux-generic/pktio/socket_mmap.c >> index 22a762f..c14ec9f 100644 >> --- a/platform/linux-generic/pktio/socket_mmap.c >> +++ b/platform/linux-generic/pktio/socket_mmap.c >> @@ -672,6 +672,7 @@ static int sock_mmap_stats_reset(pktio_entry_t >> *pktio_entry) >> >> const pktio_if_ops_t sock_mmap_pktio_ops = { >> .name = "socket_mmap", >> + .print = NULL, >> .init_global = NULL, >> .init_local = NULL, >> .term = NULL, >> diff --git a/platform/linux-generic/pktio/tap.c >> b/platform/linux-generic/pktio/tap.c >> index 45c4ae1..4ca11e6 100644 >> --- a/platform/linux-generic/pktio/tap.c >> +++ b/platform/linux-generic/pktio/tap.c >> @@ -338,6 +338,7 @@ static int tap_capability(pktio_entry_t *pktio_entry >> ODP_UNUSED, >> >> const pktio_if_ops_t tap_pktio_ops = { >> .name = "tap", >> + .print = NULL, >> .init_global = NULL, >> .init_local = NULL, >> .term = NULL, >> -- >> 1.9.1 >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> https://lists.linaro.org/mailman/listinfo/lng-odp >> > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/lng-odp
diff --git a/platform/linux-generic/include/odp_packet_io_internal.h b/platform/linux-generic/include/odp_packet_io_internal.h index 7dd578b..5adfc7e 100644 --- a/platform/linux-generic/include/odp_packet_io_internal.h +++ b/platform/linux-generic/include/odp_packet_io_internal.h @@ -175,6 +175,7 @@ int is_free(pktio_entry_t *entry); typedef struct pktio_if_ops { const char *name; + void (*print)(pktio_entry_t *pktio_entry); int (*init_global)(void); int (*init_local)(void); int (*term)(void); diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c index db5a3df..15763df 100644 --- a/platform/linux-generic/odp_packet_io.c +++ b/platform/linux-generic/odp_packet_io.c @@ -1028,7 +1028,12 @@ void odp_pktio_print(odp_pktio_t id) odp_pktio_promisc_mode(id) ? "yes" : "no"); str[len] = '\0'; - ODP_PRINT("\n%s\n", str); + ODP_PRINT("\n%s", str); + + if (entry->s.ops->print) + entry->s.ops->print(entry); + + ODP_PRINT("\n"); } int odp_pktio_term_global(void) diff --git a/platform/linux-generic/pktio/ipc.c b/platform/linux-generic/pktio/ipc.c index 12cc286..d499a19 100644 --- a/platform/linux-generic/pktio/ipc.c +++ b/platform/linux-generic/pktio/ipc.c @@ -726,6 +726,7 @@ static int ipc_close(pktio_entry_t *pktio_entry) const pktio_if_ops_t ipc_pktio_ops = { .name = "ipc", + .print = NULL, .init_global = NULL, .init_local = NULL, .term = NULL, diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index 38acff1..cbb5ea9 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -206,6 +206,7 @@ static int loopback_stats_reset(pktio_entry_t *pktio_entry ODP_UNUSED) const pktio_if_ops_t loopback_pktio_ops = { .name = "loop", + .print = NULL, .init_global = NULL, .init_local = NULL, .term = NULL, diff --git a/platform/linux-generic/pktio/netmap.c b/platform/linux-generic/pktio/netmap.c index 3e6a4f0..1042fd1 100644 --- a/platform/linux-generic/pktio/netmap.c +++ b/platform/linux-generic/pktio/netmap.c @@ -879,8 +879,18 @@ static int netmap_stats_reset(pktio_entry_t *pktio_entry) pktio_entry->s.pkt_nm.sockfd); } +static void netmap_print(pktio_entry_t *pktio_entry) +{ + odp_pktin_hash_proto_t hash_proto; + + if (rss_conf_get_fd(pktio_entry->s.pkt_nm.sockfd, + pktio_entry->s.pkt_nm.if_name, &hash_proto)) + rss_conf_print(&hash_proto); +} + const pktio_if_ops_t netmap_pktio_ops = { .name = "netmap", + .print = netmap_print, .init_global = NULL, .init_local = NULL, .term = NULL, diff --git a/platform/linux-generic/pktio/pcap.c b/platform/linux-generic/pktio/pcap.c index aab6b42..aeb20ed 100644 --- a/platform/linux-generic/pktio/pcap.c +++ b/platform/linux-generic/pktio/pcap.c @@ -421,6 +421,7 @@ static int pcapif_stats(pktio_entry_t *pktio_entry, const pktio_if_ops_t pcap_pktio_ops = { .name = "pcap", + .print = NULL, .init_global = NULL, .init_local = NULL, .open = pcapif_init, diff --git a/platform/linux-generic/pktio/socket.c b/platform/linux-generic/pktio/socket.c index a0aa9af..c0de59f 100644 --- a/platform/linux-generic/pktio/socket.c +++ b/platform/linux-generic/pktio/socket.c @@ -419,29 +419,29 @@ void rss_conf_print(const odp_pktin_hash_proto_t *hash_proto) int len = 0; int n = max_len - 1; - len += snprintf(&str[len], n - len, "RSS conf\n"); + len += snprintf(&str[len], n - len, " rss conf\n"); if (hash_proto->proto.ipv4) len += snprintf(&str[len], n - len, - " IPV4\n"); + " IPV4\n"); if (hash_proto->proto.ipv4_tcp) len += snprintf(&str[len], n - len, - " IPV4 TCP\n"); + " IPV4 TCP\n"); if (hash_proto->proto.ipv4_udp) len += snprintf(&str[len], n - len, - " IPV4 UDP\n"); + " IPV4 UDP\n"); if (hash_proto->proto.ipv6) len += snprintf(&str[len], n - len, - " IPV6\n"); + " IPV6\n"); if (hash_proto->proto.ipv6_tcp) len += snprintf(&str[len], n - len, - " IPV6 TCP\n"); + " IPV6 TCP\n"); if (hash_proto->proto.ipv6_udp) len += snprintf(&str[len], n - len, - " IPV6 UDP\n"); + " IPV6 UDP\n"); str[len] = '\0'; - ODP_PRINT("\n%s\n", str); + ODP_PRINT("%s\n", str); } /* @@ -868,6 +868,7 @@ static int sock_stats_reset(pktio_entry_t *pktio_entry) const pktio_if_ops_t sock_mmsg_pktio_ops = { .name = "socket", + .print = NULL, .init_global = NULL, .init_local = NULL, .term = NULL, diff --git a/platform/linux-generic/pktio/socket_mmap.c b/platform/linux-generic/pktio/socket_mmap.c index 22a762f..c14ec9f 100644 --- a/platform/linux-generic/pktio/socket_mmap.c +++ b/platform/linux-generic/pktio/socket_mmap.c @@ -672,6 +672,7 @@ static int sock_mmap_stats_reset(pktio_entry_t *pktio_entry) const pktio_if_ops_t sock_mmap_pktio_ops = { .name = "socket_mmap", + .print = NULL, .init_global = NULL, .init_local = NULL, .term = NULL, diff --git a/platform/linux-generic/pktio/tap.c b/platform/linux-generic/pktio/tap.c index 45c4ae1..4ca11e6 100644 --- a/platform/linux-generic/pktio/tap.c +++ b/platform/linux-generic/pktio/tap.c @@ -338,6 +338,7 @@ static int tap_capability(pktio_entry_t *pktio_entry ODP_UNUSED, const pktio_if_ops_t tap_pktio_ops = { .name = "tap", + .print = NULL, .init_global = NULL, .init_local = NULL, .term = NULL,
Add new function pointer 'print' to pktio_if_ops_t. This can be used to print pktio type specific debug information. In case of netmap, it is used to print the current RSS configuration. rss_conf_print() output format was modified to be in line with odp_pktio_print(). Signed-off-by: Matias Elo <matias.elo@nokia.com> --- platform/linux-generic/include/odp_packet_io_internal.h | 1 + platform/linux-generic/odp_packet_io.c | 7 ++++++- platform/linux-generic/pktio/ipc.c | 1 + platform/linux-generic/pktio/loop.c | 1 + platform/linux-generic/pktio/netmap.c | 10 ++++++++++ platform/linux-generic/pktio/pcap.c | 1 + platform/linux-generic/pktio/socket.c | 17 +++++++++-------- platform/linux-generic/pktio/socket_mmap.c | 1 + platform/linux-generic/pktio/tap.c | 1 + 9 files changed, 31 insertions(+), 9 deletions(-)