Hi Russell, Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Russell-Strong/Re-PATCH-net-next-net-DSCP-in-IPv4-routing/20201115-071518 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 9e6cad531c9de1ba39334fca535af0da5fdf8770 config: x86_64-randconfig-r014-20201116 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c044709b8fbea2a9a375e4173a6bd735f6866c0c) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # https://github.com/0day-ci/linux/commit/f5e2676aa421caddeef6d412be65f35d9e4d3b85 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Russell-Strong/Re-PATCH-net-next-net-DSCP-in-IPv4-routing/20201115-071518 git checkout f5e2676aa421caddeef6d412be65f35d9e4d3b85 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> All errors (new ones prefixed by >>): In file included from net/core/filter.c:33: In file included from include/net/ip.h:29: include/net/route.h:337:10: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), fl4->daddr, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/net/route.h:337:10: note: did you mean 'rt_task'? include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/linux/sched/rt.h:16:19: note: 'rt_task' declared here static inline int rt_task(struct task_struct *p) ^ In file included from net/core/filter.c:33: include/net/ip.h:245:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? rt_tos(net, ipc->tos) : rt_tos(net, inet->tos); ^ include/net/ip.h:250:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? RT_CONN_FLAGS_TOS(sk, ipc->tos) : RT_CONN_FLAGS(sk); ^ include/net/route.h:44:38: note: expanded from macro 'RT_CONN_FLAGS_TOS' #define RT_CONN_FLAGS_TOS(sk,tos) (rt_tos(sock_net(sk), tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ >> net/core/filter.c:2348:20: error: implicit declaration of function 'rt_tos' >> [-Werror,-Wimplicit-function-declaration] .flowi4_tos = rt_tos(net, ip4h->tos), ^ >> net/core/filter.c:5312:33: error: implicit declaration of function >> 'iptos_rt_mask' [-Werror,-Wimplicit-function-declaration] fl4.flowi4_tos = params->tos & iptos_rt_mask(net); ^ 5 errors generated. -- In file included from net/ipv4/route.c:90: In file included from include/net/dst_metadata.h:6: In file included from include/net/ip_tunnels.h:18: In file included from include/net/lwtunnel.h:9: include/net/route.h:337:10: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), fl4->daddr, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/net/route.h:337:10: note: did you mean 'rt_task'? include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/linux/sched/rt.h:16:19: note: 'rt_task' declared here static inline int rt_task(struct task_struct *p) ^ In file included from net/ipv4/route.c:93: include/net/ip.h:245:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? rt_tos(net, ipc->tos) : rt_tos(net, inet->tos); ^ include/net/ip.h:250:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? RT_CONN_FLAGS_TOS(sk, ipc->tos) : RT_CONN_FLAGS(sk); ^ include/net/route.h:44:38: note: expanded from macro 'RT_CONN_FLAGS_TOS' #define RT_CONN_FLAGS_TOS(sk,tos) (rt_tos(sock_net(sk), tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ >> net/ipv4/route.c:533:9: error: implicit declaration of function 'rt_tos' >> [-Werror,-Wimplicit-function-declaration] tos = RT_CONN_FLAGS(sk); ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ net/ipv4/route.c:549:11: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] u8 tos = rt_tos(net, iph->tos); ^ net/ipv4/route.c:567:7: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ net/ipv4/route.c:825:11: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] u8 tos = rt_tos(net, iph->tos); ^ net/ipv4/route.c:1073:5: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] rt_tos(net, iph->tos), protocol, mark, 0); ^ net/ipv4/route.c:1162:5: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] rt_tos(net, iph->tos), protocol, 0, 0); ^ net/ipv4/route.c:1284:20: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] fl4.flowi4_tos = rt_tos(net, iph->tos); ^ >> net/ipv4/route.c:2060:9: error: implicit declaration of function >> 'iptos_rt_mask' [-Werror,-Wimplicit-function-declaration] tos &= iptos_rt_mask(net); ^ net/ipv4/route.c:2304:9: error: implicit declaration of function 'iptos_rt_mask' [-Werror,-Wimplicit-function-declaration] tos &= iptos_rt_mask(net); ^ net/ipv4/route.c:2495:32: error: implicit declaration of function 'iptos_rt_mask' [-Werror,-Wimplicit-function-declaration] __u8 tos = fl4->flowi4_tos & (iptos_rt_mask(net) | RTO_ONLINK); ^ net/ipv4/route.c:2815:19: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] fl4.flowi4_tos = rt_tos(net, tos); ^ 14 errors generated. -- In file included from net/ipv4/ip_output.c:67: In file included from include/net/ip.h:29: include/net/route.h:337:10: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), fl4->daddr, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/net/route.h:337:10: note: did you mean 'rt_task'? include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/linux/sched/rt.h:16:19: note: 'rt_task' declared here static inline int rt_task(struct task_struct *p) ^ In file included from net/ipv4/ip_output.c:67: include/net/ip.h:245:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? rt_tos(net, ipc->tos) : rt_tos(net, inet->tos); ^ include/net/ip.h:250:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? RT_CONN_FLAGS_TOS(sk, ipc->tos) : RT_CONN_FLAGS(sk); ^ include/net/route.h:44:38: note: expanded from macro 'RT_CONN_FLAGS_TOS' #define RT_CONN_FLAGS_TOS(sk,tos) (rt_tos(sock_net(sk), tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ >> net/ipv4/ip_output.c:493:9: error: implicit declaration of function 'rt_tos' >> [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS_TOS(sk, tos), ^ include/net/route.h:44:38: note: expanded from macro 'RT_CONN_FLAGS_TOS' #define RT_CONN_FLAGS_TOS(sk,tos) (rt_tos(sock_net(sk), tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ net/ipv4/ip_output.c:1697:7: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] rt_tos(net, arg->tos), ^ 5 errors generated. -- In file included from net/ipv4/inet_connection_sock.c:16: In file included from include/net/inet_hashtables.h:27: include/net/route.h:337:10: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), fl4->daddr, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/net/route.h:337:10: note: did you mean 'rt_task'? include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/linux/sched/rt.h:16:19: note: 'rt_task' declared here static inline int rt_task(struct task_struct *p) ^ In file included from net/ipv4/inet_connection_sock.c:18: include/net/ip.h:245:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? rt_tos(net, ipc->tos) : rt_tos(net, inet->tos); ^ include/net/ip.h:250:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? RT_CONN_FLAGS_TOS(sk, ipc->tos) : RT_CONN_FLAGS(sk); ^ include/net/route.h:44:38: note: expanded from macro 'RT_CONN_FLAGS_TOS' #define RT_CONN_FLAGS_TOS(sk,tos) (rt_tos(sock_net(sk), tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ >> net/ipv4/inet_connection_sock.c:600:7: error: implicit declaration of >> function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ net/ipv4/inet_connection_sock.c:638:7: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ net/ipv4/inet_connection_sock.c:1085:8: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), sk->sk_bound_dev_if); ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ 6 errors generated. -- In file included from net/ipv4/tcp_ipv4.c:62: In file included from include/net/icmp.h:21: In file included from include/net/ip.h:29: include/net/route.h:337:10: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), fl4->daddr, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/net/route.h:337:10: note: did you mean 'rt_task'? include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/linux/sched/rt.h:16:19: note: 'rt_task' declared here static inline int rt_task(struct task_struct *p) ^ In file included from net/ipv4/tcp_ipv4.c:62: In file included from include/net/icmp.h:21: include/net/ip.h:245:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? rt_tos(net, ipc->tos) : rt_tos(net, inet->tos); ^ include/net/ip.h:250:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? RT_CONN_FLAGS_TOS(sk, ipc->tos) : RT_CONN_FLAGS(sk); ^ include/net/route.h:44:38: note: expanded from macro 'RT_CONN_FLAGS_TOS' #define RT_CONN_FLAGS_TOS(sk,tos) (rt_tos(sock_net(sk), tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ >> net/ipv4/tcp_ipv4.c:230:10: error: implicit declaration of function 'rt_tos' >> [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), sk->sk_bound_dev_if, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ 4 errors generated. -- In file included from net/ipv4/datagram.c:14: In file included from include/net/ip.h:29: include/net/route.h:337:10: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), fl4->daddr, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/net/route.h:337:10: note: did you mean 'rt_task'? include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/linux/sched/rt.h:16:19: note: 'rt_task' declared here static inline int rt_task(struct task_struct *p) ^ In file included from net/ipv4/datagram.c:14: include/net/ip.h:245:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? rt_tos(net, ipc->tos) : rt_tos(net, inet->tos); ^ include/net/ip.h:250:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? RT_CONN_FLAGS_TOS(sk, ipc->tos) : RT_CONN_FLAGS(sk); ^ include/net/route.h:44:38: note: expanded from macro 'RT_CONN_FLAGS_TOS' #define RT_CONN_FLAGS_TOS(sk,tos) (rt_tos(sock_net(sk), tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ >> net/ipv4/datagram.c:49:10: error: implicit declaration of function 'rt_tos' >> [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), oif, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ net/ipv4/datagram.c:122:8: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), sk->sk_bound_dev_if); ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ 5 errors generated. -- In file included from net/ipv4/icmp.c:76: In file included from include/net/ip.h:29: include/net/route.h:337:10: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), fl4->daddr, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/net/route.h:337:10: note: did you mean 'rt_task'? include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/linux/sched/rt.h:16:19: note: 'rt_task' declared here static inline int rt_task(struct task_struct *p) ^ In file included from net/ipv4/icmp.c:76: include/net/ip.h:245:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? rt_tos(net, ipc->tos) : rt_tos(net, inet->tos); ^ include/net/ip.h:250:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? RT_CONN_FLAGS_TOS(sk, ipc->tos) : RT_CONN_FLAGS(sk); ^ include/net/route.h:44:38: note: expanded from macro 'RT_CONN_FLAGS_TOS' #define RT_CONN_FLAGS_TOS(sk,tos) (rt_tos(sock_net(sk), tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ >> net/ipv4/icmp.c:447:19: error: implicit declaration of function 'rt_tos' >> [-Werror,-Wimplicit-function-declaration] fl4.flowi4_tos = rt_tos(net, ip_hdr(skb)->tos); ^ net/ipv4/icmp.c:499:20: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] fl4->flowi4_tos = rt_tos(net, tos); ^ net/ipv4/icmp.c:715:37: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] tos = icmp_pointers[type].error ? (rt_tos(net, iph->tos) | ^ 6 errors generated. -- In file included from net/ipv4/af_inet.c:96: In file included from include/net/ip.h:29: include/net/route.h:337:10: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] RT_CONN_FLAGS(sk), fl4->daddr, ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/net/route.h:337:10: note: did you mean 'rt_task'? include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ include/linux/sched/rt.h:16:19: note: 'rt_task' declared here static inline int rt_task(struct task_struct *p) ^ In file included from net/ipv4/af_inet.c:96: include/net/ip.h:245:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? rt_tos(net, ipc->tos) : rt_tos(net, inet->tos); ^ include/net/ip.h:250:28: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] return (ipc->tos != -1) ? RT_CONN_FLAGS_TOS(sk, ipc->tos) : RT_CONN_FLAGS(sk); ^ include/net/route.h:44:38: note: expanded from macro 'RT_CONN_FLAGS_TOS' #define RT_CONN_FLAGS_TOS(sk,tos) (rt_tos(sock_net(sk), tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ >> net/ipv4/af_inet.c:1235:39: error: implicit declaration of function 'rt_tos' >> [-Werror,-Wimplicit-function-declaration] rt = ip_route_connect(fl4, daddr, 0, RT_CONN_FLAGS(sk), ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ net/ipv4/af_inet.c:1289:25: error: implicit declaration of function 'rt_tos' [-Werror,-Wimplicit-function-declaration] sk->sk_protocol, RT_CONN_FLAGS(sk), ^ include/net/route.h:43:30: note: expanded from macro 'RT_CONN_FLAGS' #define RT_CONN_FLAGS(sk) (rt_tos(sock_net(sk), inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE)) ^ 5 errors generated. .. vim +/rt_tos +2348 net/core/filter.c 2336 2337 static int __bpf_redirect_neigh_v4(struct sk_buff *skb, struct net_device *dev, 2338 struct bpf_nh_params *nh) 2339 { 2340 const struct iphdr *ip4h = ip_hdr(skb); 2341 struct net *net = dev_net(dev); 2342 int err, ret = NET_XMIT_DROP; 2343 2344 if (!nh) { 2345 struct flowi4 fl4 = { 2346 .flowi4_flags = FLOWI_FLAG_ANYSRC, 2347 .flowi4_mark = skb->mark, > 2348 .flowi4_tos = rt_tos(net, ip4h->tos), 2349 .flowi4_oif = dev->ifindex, 2350 .flowi4_proto = ip4h->protocol, 2351 .daddr = ip4h->daddr, 2352 .saddr = ip4h->saddr, 2353 }; 2354 struct rtable *rt; 2355 2356 rt = ip_route_output_flow(net, &fl4, NULL); 2357 if (IS_ERR(rt)) 2358 goto out_drop; 2359 if (rt->rt_type != RTN_UNICAST && rt->rt_type != RTN_LOCAL) { 2360 ip_rt_put(rt); 2361 goto out_drop; 2362 } 2363 2364 skb_dst_set(skb, &rt->dst); 2365 } 2366 2367 err = bpf_out_neigh_v4(net, skb, dev, nh); 2368 if (unlikely(net_xmit_eval(err))) 2369 dev->stats.tx_errors++; 2370 else 2371 ret = NET_XMIT_SUCCESS; 2372 goto out_xmit; 2373 out_drop: 2374 dev->stats.tx_errors++; 2375 kfree_skb(skb); 2376 out_xmit: 2377 return ret; 2378 } 2379 #else 2380 static int __bpf_redirect_neigh_v4(struct sk_buff *skb, struct net_device *dev, 2381 struct bpf_nh_params *nh) 2382 { 2383 kfree_skb(skb); 2384 return NET_XMIT_DROP; 2385 } 2386 #endif /* CONFIG_INET */ 2387 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip