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);