18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci *	6LoWPAN Extension Header compression according to RFC7400
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#include "nhc.h"
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#define LOWPAN_GHC_EXT_FRAG_IDLEN	1
98c2ecf20Sopenharmony_ci#define LOWPAN_GHC_EXT_FRAG_ID_0	0xb4
108c2ecf20Sopenharmony_ci#define LOWPAN_GHC_EXT_FRAG_MASK_0	0xfe
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cistatic void frag_ghid_setup(struct lowpan_nhc *nhc)
138c2ecf20Sopenharmony_ci{
148c2ecf20Sopenharmony_ci	nhc->id[0] = LOWPAN_GHC_EXT_FRAG_ID_0;
158c2ecf20Sopenharmony_ci	nhc->idmask[0] = LOWPAN_GHC_EXT_FRAG_MASK_0;
168c2ecf20Sopenharmony_ci}
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciLOWPAN_NHC(ghc_ext_frag, "RFC7400 Fragmentation Extension Header",
198c2ecf20Sopenharmony_ci	   NEXTHDR_FRAGMENT, 0, frag_ghid_setup,
208c2ecf20Sopenharmony_ci	   LOWPAN_GHC_EXT_FRAG_IDLEN, NULL, NULL);
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_cimodule_lowpan_nhc(ghc_ext_frag);
238c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("6LoWPAN generic header fragmentation extension compression");
248c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL");
25