diff options
author | Bart De Schuymer <bdschuym@pandora.be> | 2009-01-26 16:33:57 +0100 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2009-01-26 16:33:57 +0100 |
commit | 3bd2cefc0fb9685fde9d402fdbe3f4f3ec3ddd7d (patch) | |
tree | 2bb9e305165402234ffdc053e465bb11535741e8 /utils | |
parent | 3b365b033fa35535e85ac15b16cbc5e90effd54a (diff) | |
download | libnetfilter_queue-3bd2cefc0fb9685fde9d402fdbe3f4f3ec3ddd7d.tar.gz |
nfqnl_test: add hw src address, physindev and physoutdev support
This adds the hardware source address, physindev and physoutdev support
to nfqnl_test
Signed-off-by: Bart De Schuymer <bdschuym@pandora.be>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'utils')
-rw-r--r-- | utils/nfqnl_test.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/utils/nfqnl_test.c b/utils/nfqnl_test.c index 7cf27f0..036bdab 100644 --- a/utils/nfqnl_test.c +++ b/utils/nfqnl_test.c @@ -13,17 +13,28 @@ static u_int32_t print_pkt (struct nfq_data *tb) { int id = 0; struct nfqnl_msg_packet_hdr *ph; + struct nfqnl_msg_packet_hw *hwph; u_int32_t mark,ifi; int ret; char *data; - + ph = nfq_get_msg_packet_hdr(tb); - if (ph){ + if (ph) { id = ntohl(ph->packet_id); printf("hw_protocol=0x%04x hook=%u id=%u ", ntohs(ph->hw_protocol), ph->hook, id); } - + + hwph = nfq_get_packet_hw(tb); + if (hwph) { + int i, hlen = ntohs(hwph->hw_addrlen); + + printf("hw_src_addr="); + for (i = 0; i < hlen-1; i++) + printf("%02x:", hwph->hw_addr[i]); + printf("%02x ", hwph->hw_addr[hlen-1]); + } + mark = nfq_get_nfmark(tb); if (mark) printf("mark=%u ", mark); @@ -35,6 +46,13 @@ static u_int32_t print_pkt (struct nfq_data *tb) ifi = nfq_get_outdev(tb); if (ifi) printf("outdev=%u ", ifi); + ifi = nfq_get_physindev(tb); + if (ifi) + printf("physindev=%u ", ifi); + + ifi = nfq_get_physoutdev(tb); + if (ifi) + printf("physoutdev=%u ", ifi); ret = nfq_get_payload(tb, &data); if (ret >= 0) |