Searched refs:nhc (Results 1 - 11 of 11) sorted by relevance

/linux-4.4.14/net/6lowpan/
H A Dnhc.c18 #include "nhc.h"
24 static int lowpan_nhc_insert(struct lowpan_nhc *nhc) lowpan_nhc_insert() argument
34 len_dif = nhc->idlen - this->idlen; lowpan_nhc_insert()
36 if (nhc->idlen < this->idlen) lowpan_nhc_insert()
37 len = nhc->idlen; lowpan_nhc_insert()
41 result = memcmp(nhc->id, this->id, len); lowpan_nhc_insert()
55 rb_link_node(&nhc->node, parent, new); lowpan_nhc_insert()
56 rb_insert_color(&nhc->node, &rb_root); lowpan_nhc_insert()
61 static void lowpan_nhc_remove(struct lowpan_nhc *nhc) lowpan_nhc_remove() argument
63 rb_erase(&nhc->node, &rb_root); lowpan_nhc_remove()
72 struct lowpan_nhc *nhc = container_of(node, struct lowpan_nhc, lowpan_nhc_by_nhcid() local
77 if (nhcid_skb_ptr + nhc->idlen > skb->data + skb->len) lowpan_nhc_by_nhcid()
81 memcpy(nhcid_skb_ptr_masked, nhcid_skb_ptr, nhc->idlen); lowpan_nhc_by_nhcid()
82 for (i = 0; i < nhc->idlen; i++) lowpan_nhc_by_nhcid()
83 nhcid_skb_ptr_masked[i] &= nhc->idmask[i]; lowpan_nhc_by_nhcid()
85 result = memcmp(nhcid_skb_ptr_masked, nhc->id, nhc->idlen); lowpan_nhc_by_nhcid()
91 return nhc; lowpan_nhc_by_nhcid()
100 struct lowpan_nhc *nhc; lowpan_nhc_check_compression() local
105 nhc = lowpan_nexthdr_nhcs[hdr->nexthdr]; lowpan_nhc_check_compression()
106 if (!(nhc && nhc->compress)) lowpan_nhc_check_compression()
118 struct lowpan_nhc *nhc; lowpan_nhc_do_compression() local
122 nhc = lowpan_nexthdr_nhcs[hdr->nexthdr]; lowpan_nhc_do_compression()
123 /* check if the nhc module was removed in unlocked part. lowpan_nhc_do_compression()
125 * of nhc modules while unlocked part, this will always drop lowpan_nhc_do_compression()
133 if (unlikely(!nhc || !nhc->compress)) { lowpan_nhc_do_compression()
144 ret = nhc->compress(skb, hc_ptr); lowpan_nhc_do_compression()
149 skb_pull(skb, nhc->nexthdrlen); lowpan_nhc_do_compression()
161 struct lowpan_nhc *nhc; lowpan_nhc_do_uncompression() local
166 nhc = lowpan_nhc_by_nhcid(skb); lowpan_nhc_do_uncompression()
167 if (nhc) { lowpan_nhc_do_uncompression()
168 if (nhc->uncompress) { lowpan_nhc_do_uncompression()
169 ret = nhc->uncompress(skb, sizeof(struct ipv6hdr) + lowpan_nhc_do_uncompression()
170 nhc->nexthdrlen); lowpan_nhc_do_uncompression()
177 netdev_warn(dev, "received nhc id for %s which is not implemented.\n", lowpan_nhc_do_uncompression()
178 nhc->name); lowpan_nhc_do_uncompression()
183 netdev_warn(dev, "received unknown nhc id which was not found.\n"); lowpan_nhc_do_uncompression()
187 hdr->nexthdr = nhc->nexthdr; lowpan_nhc_do_uncompression()
190 skb_transport_header(skb), nhc->nexthdrlen); lowpan_nhc_do_uncompression()
197 int lowpan_nhc_add(struct lowpan_nhc *nhc) lowpan_nhc_add() argument
201 if (!nhc->idlen || !nhc->idsetup) lowpan_nhc_add()
204 WARN_ONCE(nhc->idlen > LOWPAN_NHC_MAX_ID_LEN, lowpan_nhc_add()
206 nhc->idlen); lowpan_nhc_add()
208 nhc->idsetup(nhc); lowpan_nhc_add()
212 if (lowpan_nexthdr_nhcs[nhc->nexthdr]) { lowpan_nhc_add()
217 ret = lowpan_nhc_insert(nhc); lowpan_nhc_add()
221 lowpan_nexthdr_nhcs[nhc->nexthdr] = nhc; lowpan_nhc_add()
228 void lowpan_nhc_del(struct lowpan_nhc *nhc) lowpan_nhc_del() argument
232 lowpan_nhc_remove(nhc); lowpan_nhc_del()
233 lowpan_nexthdr_nhcs[nhc->nexthdr] = NULL; lowpan_nhc_del()
H A Dnhc_dest.c11 #include "nhc.h"
17 static void dest_nhid_setup(struct lowpan_nhc *nhc) dest_nhid_setup() argument
19 nhc->id[0] = LOWPAN_NHC_DEST_ID_0; dest_nhid_setup()
20 nhc->idmask[0] = LOWPAN_NHC_DEST_MASK_0; dest_nhid_setup()
H A Dnhc_fragment.c10 #include "nhc.h"
16 static void fragment_nhid_setup(struct lowpan_nhc *nhc) fragment_nhid_setup() argument
18 nhc->id[0] = LOWPAN_NHC_FRAGMENT_ID_0; fragment_nhid_setup()
19 nhc->idmask[0] = LOWPAN_NHC_FRAGMENT_MASK_0; fragment_nhid_setup()
H A Dnhc_hop.c10 #include "nhc.h"
16 static void hop_nhid_setup(struct lowpan_nhc *nhc) hop_nhid_setup() argument
18 nhc->id[0] = LOWPAN_NHC_HOP_ID_0; hop_nhid_setup()
19 nhc->idmask[0] = LOWPAN_NHC_HOP_MASK_0; hop_nhid_setup()
H A Dnhc_ipv6.c10 #include "nhc.h"
16 static void ipv6_nhid_setup(struct lowpan_nhc *nhc) ipv6_nhid_setup() argument
18 nhc->id[0] = LOWPAN_NHC_IPV6_ID_0; ipv6_nhid_setup()
19 nhc->idmask[0] = LOWPAN_NHC_IPV6_MASK_0; ipv6_nhid_setup()
H A Dnhc_mobility.c10 #include "nhc.h"
16 static void mobility_nhid_setup(struct lowpan_nhc *nhc) mobility_nhid_setup() argument
18 nhc->id[0] = LOWPAN_NHC_MOBILITY_ID_0; mobility_nhid_setup()
19 nhc->idmask[0] = LOWPAN_NHC_MOBILITY_MASK_0; mobility_nhid_setup()
H A Dnhc_routing.c10 #include "nhc.h"
16 static void routing_nhid_setup(struct lowpan_nhc *nhc) routing_nhid_setup() argument
18 nhc->id[0] = LOWPAN_NHC_ROUTING_ID_0; routing_nhid_setup()
19 nhc->idmask[0] = LOWPAN_NHC_ROUTING_MASK_0; routing_nhid_setup()
H A Dnhc.h59 * @id: array for nhc id. Note this need to be in network byteorder.
60 * @mask: array for nhc id mask. Note this need to be in network byteorder.
75 void (*idsetup)(struct lowpan_nhc *nhc);
81 * lowpan_nhc_by_nexthdr - return the 6lowpan nhc by ipv6 nexthdr.
89 * we support the nhc by nexthdr field, the function will return 0. If we
90 * don't support the nhc by nexthdr this function will return -ENOENT.
92 * @skb: skb of 6LoWPAN header to read nhc and replace header.
101 * lowpan_nhc_do_compression - calling compress callback for nhc
103 * @skb: skb of 6LoWPAN header to read nhc and replace header.
112 * lowpan_nhc_do_uncompression - calling uncompress callback for nhc
114 * @nhc: 6LoWPAN nhc context, get by lowpan_nhc_by_ functions.
115 * @skb: skb of 6LoWPAN header, skb->data should be pointed to nhc id value.
126 * @nhc: nhc which should be add.
128 int lowpan_nhc_add(struct lowpan_nhc *nhc);
133 * @nhc: nhc which should be delete.
135 void lowpan_nhc_del(struct lowpan_nhc *nhc);
H A DMakefile3 6lowpan-y := core.o iphc.o nhc.o
H A Dnhc_udp.c18 #include "nhc.h"
177 static void udp_nhid_setup(struct lowpan_nhc *nhc) udp_nhid_setup() argument
179 nhc->id[0] = LOWPAN_NHC_UDP_ID; udp_nhid_setup()
180 nhc->idmask[0] = LOWPAN_NHC_UDP_MASK; udp_nhid_setup()
H A Diphc.c59 #include "nhc.h"
785 /* Check if we provide the nhc format for nexthdr and compression lowpan_header_compress()

Completed in 114 milliseconds