X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fl2fwd%2Fmain.c;h=281c6b7a3f80e73ea8a27eb78b1e305a5ea46ff0;hb=e53ed84acbbb853396bfd959815da7e141756ad2;hp=c9d8d4918a3462734b2cc8e650d57c743d2e63c0;hpb=295968d1740760337e16b0d7914875c5cac52850;p=dpdk.git diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c index c9d8d4918a..281c6b7a3f 100644 --- a/examples/l2fwd/main.c +++ b/examples/l2fwd/main.c @@ -43,6 +43,9 @@ static volatile bool force_quit; /* MAC updating enabled by default */ static int mac_updating = 1; +/* Ports set in promiscuous mode off by default. */ +static int promiscuous_on; + #define RTE_LOGTYPE_L2FWD RTE_LOGTYPE_USER1 #define MAX_PKT_BURST 32 @@ -306,8 +309,9 @@ l2fwd_launch_one_lcore(__rte_unused void *dummy) static void l2fwd_usage(const char *prgname) { - printf("%s [EAL options] -- -p PORTMASK [-q NQ]\n" + printf("%s [EAL options] -- -p PORTMASK [-P] [-q NQ]\n" " -p PORTMASK: hexadecimal bitmask of ports to configure\n" + " -P : Enable promiscuous mode\n" " -q NQ: number of queue (=ports) per lcore (default is 1)\n" " -T PERIOD: statistics will be refreshed each PERIOD seconds (0 to disable, 10 default, 86400 maximum)\n" " --no-mac-updating: Disable MAC addresses updating (enabled by default)\n" @@ -424,6 +428,7 @@ l2fwd_parse_timer_period(const char *q_arg) static const char short_options[] = "p:" /* portmask */ + "P" /* promiscuous */ "q:" /* number of queues */ "T:" /* timer period */ ; @@ -472,6 +477,9 @@ l2fwd_parse_args(int argc, char **argv) return -1; } break; + case 'P': + promiscuous_on = 1; + break; /* nqueue */ case 'q': @@ -871,12 +879,13 @@ main(int argc, char **argv) ret, portid); printf("done: \n"); - - ret = rte_eth_promiscuous_enable(portid); - if (ret != 0) - rte_exit(EXIT_FAILURE, - "rte_eth_promiscuous_enable:err=%s, port=%u\n", - rte_strerror(-ret), portid); + if (promiscuous_on) { + ret = rte_eth_promiscuous_enable(portid); + if (ret != 0) + rte_exit(EXIT_FAILURE, + "rte_eth_promiscuous_enable:err=%s, port=%u\n", + rte_strerror(-ret), portid); + } printf("Port %u, MAC address: " RTE_ETHER_ADDR_PRT_FMT "\n\n", portid,