Lines Matching refs:ilwt
111 struct ioam6_lwt *ilwt;
164 lwt = lwtunnel_state_alloc(sizeof(*ilwt) + len_aligned);
168 ilwt = ioam6_lwt_state(lwt);
169 err = dst_cache_init(&ilwt->cache, GFP_ATOMIC);
175 atomic_set(&ilwt->pkt_cnt, 0);
176 ilwt->freq.k = freq_k;
177 ilwt->freq.n = freq_n;
179 ilwt->mode = mode;
181 ilwt->tundst = nla_get_in6_addr(tb[IOAM6_IPTUNNEL_DST]);
300 struct ioam6_lwt *ilwt;
307 ilwt = ioam6_lwt_state(dst->lwtstate);
310 pkt_cnt = atomic_fetch_inc(&ilwt->pkt_cnt);
311 if (pkt_cnt % ilwt->freq.n >= ilwt->freq.k)
316 switch (ilwt->mode) {
323 err = ioam6_do_inline(net, skb, &ilwt->tuninfo);
331 err = ioam6_do_encap(net, skb, &ilwt->tuninfo, &ilwt->tundst);
355 dst = dst_cache_get(&ilwt->cache);
377 dst_cache_set_ip6(&ilwt->cache, dst, &fl6.saddr);
401 struct ioam6_lwt *ilwt = ioam6_lwt_state(lwtstate);
404 err = nla_put_u32(skb, IOAM6_IPTUNNEL_FREQ_K, ilwt->freq.k);
408 err = nla_put_u32(skb, IOAM6_IPTUNNEL_FREQ_N, ilwt->freq.n);
412 err = nla_put_u8(skb, IOAM6_IPTUNNEL_MODE, ilwt->mode);
416 if (ilwt->mode != IOAM6_IPTUNNEL_MODE_INLINE) {
417 err = nla_put_in6_addr(skb, IOAM6_IPTUNNEL_DST, &ilwt->tundst);
422 err = nla_put(skb, IOAM6_IPTUNNEL_TRACE, sizeof(ilwt->tuninfo.traceh),
423 &ilwt->tuninfo.traceh);
430 struct ioam6_lwt *ilwt = ioam6_lwt_state(lwtstate);
433 nlsize = nla_total_size(sizeof(ilwt->freq.k)) +
434 nla_total_size(sizeof(ilwt->freq.n)) +
435 nla_total_size(sizeof(ilwt->mode)) +
436 nla_total_size(sizeof(ilwt->tuninfo.traceh));
438 if (ilwt->mode != IOAM6_IPTUNNEL_MODE_INLINE)
439 nlsize += nla_total_size(sizeof(ilwt->tundst));