From ad78308508160532f8c464e194bb7b5cd83a2dc9 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Tue, 28 Sep 2021 12:46:40 +0200 Subject: utils: nfulnl_test: use nflog_get_packet_hw() and print hardware address Print hardware length and address. Signed-off-by: Pablo Neira Ayuso --- utils/nfulnl_test.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/utils/nfulnl_test.c b/utils/nfulnl_test.c index e5f625b..4f29f17 100644 --- a/utils/nfulnl_test.c +++ b/utils/nfulnl_test.c @@ -8,11 +8,13 @@ static int print_pkt(struct nflog_data *nfad) { + uint32_t outdev, indev, hw_addrlen; struct nfulnl_msg_packet_hdr *ph; - uint32_t outdev, indev; + struct nfulnl_msg_packet_hw *hw; int payload_len; char *payload; char *prefix; + int i; ph = nflog_get_msg_packet_hdr(nfad); if (ph) { @@ -20,6 +22,18 @@ static int print_pkt(struct nflog_data *nfad) ntohs(ph->hw_protocol), ph->hook); } + hw = nflog_get_packet_hw(nfad); + if (hw) { + hw_addrlen = ntohs(hw->hw_addrlen); + printf("hw_addrlen=%d ", hw_addrlen); + + printf("hw_addr="); + for (i = 0; i < hw_addrlen - 1; i++) + printf("%02x:", hw->hw_addr[i]); + + printf("%02x ", hw->hw_addr[hw_addrlen - 1]); + } + printf("mark=%u ", nflog_get_nfmark(nfad)); indev = nflog_get_indev(nfad); -- cgit v1.2.3