Lines Matching refs:bareudp
64 struct bareudp_dev *bareudp; in bareudp_udp_encap_recv() local
71 bareudp = rcu_dereference_sk_user_data(sk); in bareudp_udp_encap_recv()
72 if (!bareudp) in bareudp_udp_encap_recv()
80 if (bareudp->ethertype == htons(ETH_P_IP)) { in bareudp_udp_encap_recv()
85 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
92 } else if (ipversion == 6 && bareudp->multi_proto_mode) { in bareudp_udp_encap_recv()
95 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
98 } else if (bareudp->ethertype == htons(ETH_P_MPLS_UC)) { in bareudp_udp_encap_recv()
104 proto = bareudp->ethertype; in bareudp_udp_encap_recv()
105 } else if (bareudp->multi_proto_mode && in bareudp_udp_encap_recv()
109 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
120 proto = bareudp->ethertype; in bareudp_udp_encap_recv()
121 } else if (bareudp->multi_proto_mode && in bareudp_udp_encap_recv()
125 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
130 proto = bareudp->ethertype; in bareudp_udp_encap_recv()
135 !net_eq(bareudp->net, in bareudp_udp_encap_recv()
136 dev_net(bareudp->dev)))) { in bareudp_udp_encap_recv()
137 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
142 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
146 skb->dev = bareudp->dev; in bareudp_udp_encap_recv()
168 ++bareudp->dev->stats.rx_frame_errors; in bareudp_udp_encap_recv()
169 ++bareudp->dev->stats.rx_errors; in bareudp_udp_encap_recv()
175 err = gro_cells_receive(&bareudp->gro_cells, skb); in bareudp_udp_encap_recv()
177 dev_sw_netstats_rx_add(bareudp->dev, len); in bareudp_udp_encap_recv()
194 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_init() local
201 err = gro_cells_init(&bareudp->gro_cells, dev); in bareudp_init()
211 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_uninit() local
213 gro_cells_destroy(&bareudp->gro_cells); in bareudp_uninit()
241 static int bareudp_socket_create(struct bareudp_dev *bareudp, __be16 port) in bareudp_socket_create() argument
246 sock = bareudp_create_sock(bareudp->net, port); in bareudp_socket_create()
252 tunnel_cfg.sk_user_data = bareudp; in bareudp_socket_create()
257 setup_udp_tunnel_sock(bareudp->net, sock, &tunnel_cfg); in bareudp_socket_create()
259 rcu_assign_pointer(bareudp->sock, sock); in bareudp_socket_create()
265 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_open() local
268 ret = bareudp_socket_create(bareudp, bareudp->port); in bareudp_open()
272 static void bareudp_sock_release(struct bareudp_dev *bareudp) in bareudp_sock_release() argument
276 sock = bareudp->sock; in bareudp_sock_release()
277 rcu_assign_pointer(bareudp->sock, NULL); in bareudp_sock_release()
284 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_stop() local
286 bareudp_sock_release(bareudp); in bareudp_stop()
291 struct bareudp_dev *bareudp, in bareudp_xmit_skb() argument
294 bool xnet = !net_eq(bareudp->net, dev_net(bareudp->dev)); in bareudp_xmit_skb()
296 struct socket *sock = rcu_dereference(bareudp->sock); in bareudp_xmit_skb()
309 rt = ip_route_output_tunnel(skb, dev, bareudp->net, &saddr, info, in bareudp_xmit_skb()
318 sport = udp_flow_src_port(bareudp->net, skb, in bareudp_xmit_skb()
319 bareudp->sport_min, USHRT_MAX, in bareudp_xmit_skb()
341 skb_set_inner_protocol(skb, bareudp->ethertype); in bareudp_xmit_skb()
343 tos, ttl, df, sport, bareudp->port, in bareudp_xmit_skb()
344 !net_eq(bareudp->net, dev_net(bareudp->dev)), in bareudp_xmit_skb()
354 struct bareudp_dev *bareudp, in bareudp6_xmit_skb() argument
357 bool xnet = !net_eq(bareudp->net, dev_net(bareudp->dev)); in bareudp6_xmit_skb()
359 struct socket *sock = rcu_dereference(bareudp->sock); in bareudp6_xmit_skb()
372 dst = ip6_dst_lookup_tunnel(skb, dev, bareudp->net, sock, &saddr, info, in bareudp6_xmit_skb()
380 sport = udp_flow_src_port(bareudp->net, skb, in bareudp6_xmit_skb()
381 bareudp->sport_min, USHRT_MAX, in bareudp6_xmit_skb()
406 info->key.label, sport, bareudp->port, in bareudp6_xmit_skb()
415 static bool bareudp_proto_valid(struct bareudp_dev *bareudp, __be16 proto) in bareudp_proto_valid() argument
417 if (bareudp->ethertype == proto) in bareudp_proto_valid()
420 if (!bareudp->multi_proto_mode) in bareudp_proto_valid()
423 if (bareudp->ethertype == htons(ETH_P_MPLS_UC) && in bareudp_proto_valid()
427 if (bareudp->ethertype == htons(ETH_P_IP) && in bareudp_proto_valid()
436 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_xmit() local
440 if (!bareudp_proto_valid(bareudp, skb->protocol)) { in bareudp_xmit()
453 err = bareudp6_xmit_skb(skb, dev, bareudp, info); in bareudp_xmit()
455 err = bareudp_xmit_skb(skb, dev, bareudp, info); in bareudp_xmit()
477 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_fill_metadata_dst() local
486 rt = ip_route_output_tunnel(skb, dev, bareudp->net, &saddr, in bareudp_fill_metadata_dst()
496 struct socket *sock = rcu_dereference(bareudp->sock); in bareudp_fill_metadata_dst()
498 dst = ip6_dst_lookup_tunnel(skb, dev, bareudp->net, sock, in bareudp_fill_metadata_dst()
510 info->key.tp_src = udp_flow_src_port(bareudp->net, skb, in bareudp_fill_metadata_dst()
511 bareudp->sport_min, in bareudp_fill_metadata_dst()
513 info->key.tp_dst = bareudp->port; in bareudp_fill_metadata_dst()
603 struct bareudp_dev *bareudp, *t = NULL; in bareudp_find_dev() local
605 list_for_each_entry(bareudp, &bn->bareudp_list, next) { in bareudp_find_dev()
606 if (conf->port == bareudp->port) in bareudp_find_dev()
607 t = bareudp; in bareudp_find_dev()
617 struct bareudp_dev *t, *bareudp = netdev_priv(dev); in bareudp_configure() local
620 bareudp->net = net; in bareudp_configure()
621 bareudp->dev = dev; in bareudp_configure()
635 bareudp->port = conf->port; in bareudp_configure()
636 bareudp->ethertype = conf->ethertype; in bareudp_configure()
637 bareudp->sport_min = conf->sport_min; in bareudp_configure()
638 bareudp->multi_proto_mode = conf->multi_proto_mode; in bareudp_configure()
644 list_add(&bareudp->next, &bn->bareudp_list); in bareudp_configure()
663 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_dellink() local
665 list_del(&bareudp->next); in bareudp_dellink()
706 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_fill_info() local
708 if (nla_put_be16(skb, IFLA_BAREUDP_PORT, bareudp->port)) in bareudp_fill_info()
710 if (nla_put_be16(skb, IFLA_BAREUDP_ETHERTYPE, bareudp->ethertype)) in bareudp_fill_info()
712 if (nla_put_u16(skb, IFLA_BAREUDP_SRCPORT_MIN, bareudp->sport_min)) in bareudp_fill_info()
714 if (bareudp->multi_proto_mode && in bareudp_fill_info()
748 struct bareudp_dev *bareudp, *next; in bareudp_destroy_tunnels() local
750 list_for_each_entry_safe(bareudp, next, &bn->bareudp_list, next) in bareudp_destroy_tunnels()
751 unregister_netdevice_queue(bareudp->dev, head); in bareudp_destroy_tunnels()