Lines Matching refs:fib_params
48 struct bpf_fib_lookup fib_params; in xdp_fwd_flags() local
60 __builtin_memset(&fib_params, 0, sizeof(fib_params)); in xdp_fwd_flags()
72 fib_params.family = AF_INET; in xdp_fwd_flags()
73 fib_params.tos = iph->tos; in xdp_fwd_flags()
74 fib_params.l4_protocol = iph->protocol; in xdp_fwd_flags()
75 fib_params.sport = 0; in xdp_fwd_flags()
76 fib_params.dport = 0; in xdp_fwd_flags()
77 fib_params.tot_len = ntohs(iph->tot_len); in xdp_fwd_flags()
78 fib_params.ipv4_src = iph->saddr; in xdp_fwd_flags()
79 fib_params.ipv4_dst = iph->daddr; in xdp_fwd_flags()
81 struct in6_addr *src = (struct in6_addr *) fib_params.ipv6_src; in xdp_fwd_flags()
82 struct in6_addr *dst = (struct in6_addr *) fib_params.ipv6_dst; in xdp_fwd_flags()
91 fib_params.family = AF_INET6; in xdp_fwd_flags()
92 fib_params.flowinfo = *(__be32 *)ip6h & IPV6_FLOWINFO_MASK; in xdp_fwd_flags()
93 fib_params.l4_protocol = ip6h->nexthdr; in xdp_fwd_flags()
94 fib_params.sport = 0; in xdp_fwd_flags()
95 fib_params.dport = 0; in xdp_fwd_flags()
96 fib_params.tot_len = ntohs(ip6h->payload_len); in xdp_fwd_flags()
103 fib_params.ifindex = ctx->ingress_ifindex; in xdp_fwd_flags()
105 rc = bpf_fib_lookup(ctx, &fib_params, sizeof(fib_params), flags); in xdp_fwd_flags()
131 if (!bpf_map_lookup_elem(&xdp_tx_ports, &fib_params.ifindex)) in xdp_fwd_flags()
139 memcpy(eth->h_dest, fib_params.dmac, ETH_ALEN); in xdp_fwd_flags()
140 memcpy(eth->h_source, fib_params.smac, ETH_ALEN); in xdp_fwd_flags()
141 return bpf_redirect_map(&xdp_tx_ports, fib_params.ifindex, 0); in xdp_fwd_flags()