slwt              289 net/ipv6/seg6_iptunnel.c 	struct seg6_lwt *slwt;
slwt              298 net/ipv6/seg6_iptunnel.c 	slwt = seg6_lwt_lwtunnel(orig_dst->lwtstate);
slwt              301 net/ipv6/seg6_iptunnel.c 	dst = dst_cache_get(&slwt->cache);
slwt              311 net/ipv6/seg6_iptunnel.c 			dst_cache_set_ip6(&slwt->cache, dst,
slwt              330 net/ipv6/seg6_iptunnel.c 	struct seg6_lwt *slwt;
slwt              337 net/ipv6/seg6_iptunnel.c 	slwt = seg6_lwt_lwtunnel(orig_dst->lwtstate);
slwt              340 net/ipv6/seg6_iptunnel.c 	dst = dst_cache_get(&slwt->cache);
slwt              362 net/ipv6/seg6_iptunnel.c 		dst_cache_set_ip6(&slwt->cache, dst, &fl6.saddr);
slwt              388 net/ipv6/seg6_iptunnel.c 	struct seg6_lwt *slwt;
slwt              432 net/ipv6/seg6_iptunnel.c 	newts = lwtunnel_state_alloc(tuninfo_len + sizeof(*slwt));
slwt              436 net/ipv6/seg6_iptunnel.c 	slwt = seg6_lwt_lwtunnel(newts);
slwt              438 net/ipv6/seg6_iptunnel.c 	err = dst_cache_init(&slwt->cache, GFP_ATOMIC);
slwt              444 net/ipv6/seg6_iptunnel.c 	memcpy(&slwt->tuninfo, tuninfo, tuninfo_len);
slwt               39 net/ipv6/seg6_local.c 	int (*input)(struct sk_buff *skb, struct seg6_local_lwt *slwt);
slwt              205 net/ipv6/seg6_local.c static int input_action_end(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              225 net/ipv6/seg6_local.c static int input_action_end_x(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              235 net/ipv6/seg6_local.c 	seg6_lookup_nexthop(skb, &slwt->nh6, 0);
slwt              244 net/ipv6/seg6_local.c static int input_action_end_t(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              254 net/ipv6/seg6_local.c 	seg6_lookup_nexthop(skb, NULL, slwt->table);
slwt              265 net/ipv6/seg6_local.c 				struct seg6_local_lwt *slwt)
slwt              287 net/ipv6/seg6_local.c 	odev = dev_get_by_index_rcu(net, slwt->oif);
slwt              322 net/ipv6/seg6_local.c 				struct seg6_local_lwt *slwt)
slwt              343 net/ipv6/seg6_local.c 	if (!ipv6_addr_any(&slwt->nh6))
slwt              344 net/ipv6/seg6_local.c 		nhaddr = &slwt->nh6;
slwt              357 net/ipv6/seg6_local.c 				struct seg6_local_lwt *slwt)
slwt              373 net/ipv6/seg6_local.c 	nhaddr = slwt->nh4.s_addr ?: iph->daddr;
slwt              391 net/ipv6/seg6_local.c 				struct seg6_local_lwt *slwt)
slwt              401 net/ipv6/seg6_local.c 	seg6_lookup_nexthop(skb, NULL, slwt->table);
slwt              411 net/ipv6/seg6_local.c static int input_action_end_b6(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              420 net/ipv6/seg6_local.c 	err = seg6_do_srh_inline(skb, slwt->srh);
slwt              438 net/ipv6/seg6_local.c 				     struct seg6_local_lwt *slwt)
slwt              452 net/ipv6/seg6_local.c 	err = seg6_do_srh_encap(skb, slwt->srh, IPPROTO_IPV6);
slwt              494 net/ipv6/seg6_local.c 				struct seg6_local_lwt *slwt)
slwt              518 net/ipv6/seg6_local.c 	ret = bpf_prog_run_save_cb(slwt->bpf.prog, skb);
slwt              621 net/ipv6/seg6_local.c 	struct seg6_local_lwt *slwt;
slwt              628 net/ipv6/seg6_local.c 	slwt = seg6_local_lwtunnel(orig_dst->lwtstate);
slwt              629 net/ipv6/seg6_local.c 	desc = slwt->desc;
slwt              631 net/ipv6/seg6_local.c 	return desc->input(skb, slwt);
slwt              647 net/ipv6/seg6_local.c static int parse_nla_srh(struct nlattr **attrs, struct seg6_local_lwt *slwt)
slwt              662 net/ipv6/seg6_local.c 	slwt->srh = kmemdup(srh, len, GFP_KERNEL);
slwt              663 net/ipv6/seg6_local.c 	if (!slwt->srh)
slwt              666 net/ipv6/seg6_local.c 	slwt->headroom += len;
slwt              671 net/ipv6/seg6_local.c static int put_nla_srh(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              677 net/ipv6/seg6_local.c 	srh = slwt->srh;
slwt              699 net/ipv6/seg6_local.c static int parse_nla_table(struct nlattr **attrs, struct seg6_local_lwt *slwt)
slwt              701 net/ipv6/seg6_local.c 	slwt->table = nla_get_u32(attrs[SEG6_LOCAL_TABLE]);
slwt              706 net/ipv6/seg6_local.c static int put_nla_table(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              708 net/ipv6/seg6_local.c 	if (nla_put_u32(skb, SEG6_LOCAL_TABLE, slwt->table))
slwt              722 net/ipv6/seg6_local.c static int parse_nla_nh4(struct nlattr **attrs, struct seg6_local_lwt *slwt)
slwt              724 net/ipv6/seg6_local.c 	memcpy(&slwt->nh4, nla_data(attrs[SEG6_LOCAL_NH4]),
slwt              730 net/ipv6/seg6_local.c static int put_nla_nh4(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              738 net/ipv6/seg6_local.c 	memcpy(nla_data(nla), &slwt->nh4, sizeof(struct in_addr));
slwt              748 net/ipv6/seg6_local.c static int parse_nla_nh6(struct nlattr **attrs, struct seg6_local_lwt *slwt)
slwt              750 net/ipv6/seg6_local.c 	memcpy(&slwt->nh6, nla_data(attrs[SEG6_LOCAL_NH6]),
slwt              756 net/ipv6/seg6_local.c static int put_nla_nh6(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              764 net/ipv6/seg6_local.c 	memcpy(nla_data(nla), &slwt->nh6, sizeof(struct in6_addr));
slwt              774 net/ipv6/seg6_local.c static int parse_nla_iif(struct nlattr **attrs, struct seg6_local_lwt *slwt)
slwt              776 net/ipv6/seg6_local.c 	slwt->iif = nla_get_u32(attrs[SEG6_LOCAL_IIF]);
slwt              781 net/ipv6/seg6_local.c static int put_nla_iif(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              783 net/ipv6/seg6_local.c 	if (nla_put_u32(skb, SEG6_LOCAL_IIF, slwt->iif))
slwt              797 net/ipv6/seg6_local.c static int parse_nla_oif(struct nlattr **attrs, struct seg6_local_lwt *slwt)
slwt              799 net/ipv6/seg6_local.c 	slwt->oif = nla_get_u32(attrs[SEG6_LOCAL_OIF]);
slwt              804 net/ipv6/seg6_local.c static int put_nla_oif(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              806 net/ipv6/seg6_local.c 	if (nla_put_u32(skb, SEG6_LOCAL_OIF, slwt->oif))
slwt              827 net/ipv6/seg6_local.c static int parse_nla_bpf(struct nlattr **attrs, struct seg6_local_lwt *slwt)
slwt              843 net/ipv6/seg6_local.c 	slwt->bpf.name = nla_memdup(tb[SEG6_LOCAL_BPF_PROG_NAME], GFP_KERNEL);
slwt              844 net/ipv6/seg6_local.c 	if (!slwt->bpf.name)
slwt              850 net/ipv6/seg6_local.c 		kfree(slwt->bpf.name);
slwt              854 net/ipv6/seg6_local.c 	slwt->bpf.prog = p;
slwt              858 net/ipv6/seg6_local.c static int put_nla_bpf(struct sk_buff *skb, struct seg6_local_lwt *slwt)
slwt              862 net/ipv6/seg6_local.c 	if (!slwt->bpf.prog)
slwt              869 net/ipv6/seg6_local.c 	if (nla_put_u32(skb, SEG6_LOCAL_BPF_PROG, slwt->bpf.prog->aux->id))
slwt              872 net/ipv6/seg6_local.c 	if (slwt->bpf.name &&
slwt              873 net/ipv6/seg6_local.c 	    nla_put_string(skb, SEG6_LOCAL_BPF_PROG_NAME, slwt->bpf.name))
slwt              891 net/ipv6/seg6_local.c 	int (*parse)(struct nlattr **attrs, struct seg6_local_lwt *slwt);
slwt              892 net/ipv6/seg6_local.c 	int (*put)(struct sk_buff *skb, struct seg6_local_lwt *slwt);
slwt              927 net/ipv6/seg6_local.c static int parse_nla_action(struct nlattr **attrs, struct seg6_local_lwt *slwt)
slwt              933 net/ipv6/seg6_local.c 	desc = __get_action_desc(slwt->action);
slwt              940 net/ipv6/seg6_local.c 	slwt->desc = desc;
slwt              941 net/ipv6/seg6_local.c 	slwt->headroom += desc->static_headroom;
slwt              950 net/ipv6/seg6_local.c 			err = param->parse(attrs, slwt);
slwt              965 net/ipv6/seg6_local.c 	struct seg6_local_lwt *slwt;
slwt              980 net/ipv6/seg6_local.c 	newts = lwtunnel_state_alloc(sizeof(*slwt));
slwt              984 net/ipv6/seg6_local.c 	slwt = seg6_local_lwtunnel(newts);
slwt              985 net/ipv6/seg6_local.c 	slwt->action = nla_get_u32(tb[SEG6_LOCAL_ACTION]);
slwt              987 net/ipv6/seg6_local.c 	err = parse_nla_action(tb, slwt);
slwt              993 net/ipv6/seg6_local.c 	newts->headroom = slwt->headroom;
slwt             1000 net/ipv6/seg6_local.c 	kfree(slwt->srh);
slwt             1007 net/ipv6/seg6_local.c 	struct seg6_local_lwt *slwt = seg6_local_lwtunnel(lwt);
slwt             1009 net/ipv6/seg6_local.c 	kfree(slwt->srh);
slwt             1011 net/ipv6/seg6_local.c 	if (slwt->desc->attrs & (1 << SEG6_LOCAL_BPF)) {
slwt             1012 net/ipv6/seg6_local.c 		kfree(slwt->bpf.name);
slwt             1013 net/ipv6/seg6_local.c 		bpf_prog_put(slwt->bpf.prog);
slwt             1022 net/ipv6/seg6_local.c 	struct seg6_local_lwt *slwt = seg6_local_lwtunnel(lwt);
slwt             1026 net/ipv6/seg6_local.c 	if (nla_put_u32(skb, SEG6_LOCAL_ACTION, slwt->action))
slwt             1030 net/ipv6/seg6_local.c 		if (slwt->desc->attrs & (1 << i)) {
slwt             1032 net/ipv6/seg6_local.c 			err = param->put(skb, slwt);
slwt             1043 net/ipv6/seg6_local.c 	struct seg6_local_lwt *slwt = seg6_local_lwtunnel(lwt);
slwt             1049 net/ipv6/seg6_local.c 	attrs = slwt->desc->attrs;
slwt             1052 net/ipv6/seg6_local.c 		nlsize += nla_total_size((slwt->srh->hdrlen + 1) << 3);