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); |
