diff options
-rw-r--r-- | include/linux/netfilter/nfnetlink_log.h | 3 | ||||
-rw-r--r-- | net/netfilter/nfnetlink_log.c | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/netfilter/nfnetlink_log.h b/include/linux/netfilter/nfnetlink_log.h index a85721332924..f661731f3cb1 100644 --- a/include/linux/netfilter/nfnetlink_log.h +++ b/include/linux/netfilter/nfnetlink_log.h | |||
@@ -48,6 +48,9 @@ enum nfulnl_attr_type { | |||
48 | NFULA_SEQ, /* instance-local sequence number */ | 48 | NFULA_SEQ, /* instance-local sequence number */ |
49 | NFULA_SEQ_GLOBAL, /* global sequence number */ | 49 | NFULA_SEQ_GLOBAL, /* global sequence number */ |
50 | NFULA_GID, /* group id of socket */ | 50 | NFULA_GID, /* group id of socket */ |
51 | NFULA_HWTYPE, /* hardware type */ | ||
52 | NFULA_HWHEADER, /* hardware header */ | ||
53 | NFULA_HWLEN, /* hardware header length */ | ||
51 | 54 | ||
52 | __NFULA_MAX | 55 | __NFULA_MAX |
53 | }; | 56 | }; |
diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c index b8173af8c24a..9a35b57ab76d 100644 --- a/net/netfilter/nfnetlink_log.c +++ b/net/netfilter/nfnetlink_log.c | |||
@@ -453,6 +453,14 @@ __build_packet_message(struct nfulnl_instance *inst, | |||
453 | } | 453 | } |
454 | } | 454 | } |
455 | 455 | ||
456 | if (indev && skb_mac_header_was_set(skb)) { | ||
457 | NLA_PUT_BE16(inst->skb, NFULA_HWTYPE, htons(skb->dev->type)); | ||
458 | NLA_PUT_BE16(inst->skb, NFULA_HWLEN, | ||
459 | htons(skb->dev->hard_header_len)); | ||
460 | NLA_PUT(inst->skb, NFULA_HWHEADER, skb->dev->hard_header_len, | ||
461 | skb_mac_header(skb)); | ||
462 | } | ||
463 | |||
456 | if (skb->tstamp.tv64) { | 464 | if (skb->tstamp.tv64) { |
457 | struct nfulnl_msg_packet_timestamp ts; | 465 | struct nfulnl_msg_packet_timestamp ts; |
458 | struct timeval tv = ktime_to_timeval(skb->tstamp); | 466 | struct timeval tv = ktime_to_timeval(skb->tstamp); |