]> granicus.if.org Git - strace/commitdiff
netlink: implement decoding of INET_DIAG_CLASS_ID attribute
authorDmitry V. Levin <ldv@altlinux.org>
Sat, 16 Sep 2017 17:44:29 +0000 (17:44 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 17 Sep 2017 12:04:11 +0000 (12:04 +0000)
This is a new netlink attribute introduced by linux kernel commit
v4.14-rc1~130^2~207.

* linux/inet_diag.h (INET_DIAG_CLASS_ID): New enum.
* netlink_inet_diag.c (inet_diag_msg_nla_decoders): Add
INET_DIAG_CLASS_ID.
* xlat/inet_diag_attrs.in: Add INET_DIAG_CLASS_ID.
* xlat/inet_diag_extended_flags.in: Add 1<<(INET_DIAG_CLASS_ID-1).
* tests/nlattr_inet_diag_msg.c (main): Check INET_DIAG_CLASS_ID
decoding.

linux/inet_diag.h
netlink_inet_diag.c
tests/nlattr_inet_diag_msg.c
xlat/inet_diag_attrs.in
xlat/inet_diag_extended_flags.in

index ec6356c2d69d342556e14e5cff33314b7a7f5095..d2eec2cee062991bec90be1dc2bd3c75f7136a0b 100644 (file)
@@ -106,6 +106,7 @@ enum {
        INET_DIAG_PAD,
        INET_DIAG_MARK,
        INET_DIAG_BBRINFO,
+       INET_DIAG_CLASS_ID,
 };
 
 /* INET_DIAG_MEM */
index 700cbd3b2b75c151a6324a66f8fdcb96729857b5..cffe3f5a22f9d773391c7d8e5c173d6c3f72fcf8 100644 (file)
@@ -388,7 +388,8 @@ static const nla_decoder_t inet_diag_msg_nla_decoders[] = {
        [INET_DIAG_PEERS]       = NULL,                 /* unimplemented */
        [INET_DIAG_PAD]         = NULL,
        [INET_DIAG_MARK]        = decode_nla_u32,
-       [INET_DIAG_BBRINFO]     = decode_tcp_bbr_info
+       [INET_DIAG_BBRINFO]     = decode_tcp_bbr_info,
+       [INET_DIAG_CLASS_ID]    = decode_nla_u32
 };
 
 DECL_NETLINK_DIAG_DECODER(decode_inet_diag_msg)
index 5666d74bf90ee227fde5a14846d95374ec771448..ccc62aed5c1e8a722a95ea7063165076307ba6ef 100644 (file)
@@ -182,6 +182,11 @@ main(void)
                           INET_DIAG_MARK, pattern, mark,
                           printf("%u", mark));
 
+       TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+                          init_inet_diag_msg, print_inet_diag_msg,
+                          INET_DIAG_CLASS_ID, pattern, mark,
+                          printf("%u", mark));
+
        static const uint8_t shutdown = 0xcd;
        TEST_NLATTR(fd, nlh0, hdrlen,
                    init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_SHUTDOWN,
index 17519c833cb9abba353d59964263aa1ebac60b31..4536ebc3f1da32cc0bf3a94cac4ad79ead12bfd5 100644 (file)
@@ -16,3 +16,4 @@ INET_DIAG_PEERS
 INET_DIAG_PAD
 INET_DIAG_MARK
 INET_DIAG_BBRINFO
+INET_DIAG_CLASS_ID
index 05be3ca4be1b1993d97031959aa687c8ef47a08c..182cac160ce0ee94dfe4ab3e6ed2c240b11ed85b 100644 (file)
@@ -15,3 +15,4 @@
 1<<(INET_DIAG_PAD-1)
 1<<(INET_DIAG_MARK-1)
 1<<(INET_DIAG_BBRINFO-1)
+1<<(INET_DIAG_CLASS_ID-1)