Hi Oleksij, On Tue, 2022-11-08 at 07:10 +0100, Oleksij Rempel wrote: > Add -p option to control promisc mode of the ethrnet device. > just found a small typo: s/ethrnet/ethernet/ Best regards Johannes > Example: > ethlog -p eth0 - will enable promisc mode and logging on the eth0 > device > ethlog -rp eth0 - will disable promisc mode and logging on the eth0 > device > > All the same commands without "-p" option will not touch promisc > configuration. > > Signed-off-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> > --- > commands/ethlog.c | 21 +++++++++++++++++---- > 1 file changed, 17 insertions(+), 4 deletions(-) > > diff --git a/commands/ethlog.c b/commands/ethlog.c > index 0cc93ba808..7885d32c6b 100644 > --- a/commands/ethlog.c > +++ b/commands/ethlog.c > @@ -29,11 +29,14 @@ static int do_ethlog(int argc, char *argv[]) > { > struct eth_device *edev; > const char *edevname; > - bool remove = false; > - int opt; > + bool remove = false, promisc = false; > + int opt, ret; > > - while ((opt = getopt(argc, argv, "r")) > 0) { > + while ((opt = getopt(argc, argv, "pr")) > 0) { > switch (opt) { > + case 'p': > + promisc = true; > + break; > case 'r': > remove = true; > break; > @@ -56,10 +59,19 @@ static int do_ethlog(int argc, char *argv[]) > if (remove) { > edev->tx_monitor = NULL; > edev->rx_monitor = NULL; > + if (promisc) > + eth_set_promisc(edev, false); > > return 0; > } > > + if (promisc) { > + ret = eth_set_promisc(edev, true); > + if (ret) > + dev_warn(&edev->dev, "Failed to set promisc > mode: %pe\n", > + ERR_PTR(ret)); > + } > + > edev->tx_monitor = ethlog_tx_monitor; > edev->rx_monitor = ethlog_rx_monitor; > > @@ -69,12 +81,13 @@ static int do_ethlog(int argc, char *argv[]) > BAREBOX_CMD_HELP_START(ethlog) > BAREBOX_CMD_HELP_TEXT("Options:") > BAREBOX_CMD_HELP_OPT("-r", "remove log handler from Ethernet > interface") > +BAREBOX_CMD_HELP_OPT("-p", "Enable promisc mode, or disable if -r is > used") > BAREBOX_CMD_HELP_END > > BAREBOX_CMD_START(ethlog) > .cmd = do_ethlog, > BAREBOX_CMD_DESC("ETHLOG - tool to get dump of Ethernet > packets") > - BAREBOX_CMD_OPTS("[-r] [device]") > + BAREBOX_CMD_OPTS("[-rp] [device]") > BAREBOX_CMD_GROUP(CMD_GRP_NET) > BAREBOX_CMD_COMPLETE(eth_complete) > BAREBOX_CMD_END -- Pengutronix e.K. | Johannes Zink | Steuerwalder Str. 21 | https://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686| Fax: +49-5121-206917-5555 |