Linux-libre 5.4.47-gnu
[librecmc/linux-libre.git] / net / 6lowpan / nhc_ghc_icmpv6.c
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  *      6LoWPAN ICMPv6 compression according to RFC7400
4  */
5
6 #include "nhc.h"
7
8 #define LOWPAN_GHC_ICMPV6_IDLEN         1
9 #define LOWPAN_GHC_ICMPV6_ID_0          0xdf
10 #define LOWPAN_GHC_ICMPV6_MASK_0        0xff
11
12 static void icmpv6_ghid_setup(struct lowpan_nhc *nhc)
13 {
14         nhc->id[0] = LOWPAN_GHC_ICMPV6_ID_0;
15         nhc->idmask[0] = LOWPAN_GHC_ICMPV6_MASK_0;
16 }
17
18 LOWPAN_NHC(ghc_icmpv6, "RFC7400 ICMPv6", NEXTHDR_ICMP, 0,
19            icmpv6_ghid_setup, LOWPAN_GHC_ICMPV6_IDLEN, NULL, NULL);
20
21 module_lowpan_nhc(ghc_icmpv6);
22 MODULE_DESCRIPTION("6LoWPAN generic header ICMPv6 compression");
23 MODULE_LICENSE("GPL");