Lines Matching refs:bareudp

57 	struct bareudp_dev *bareudp;  in bareudp_udp_encap_recv()  local
64 bareudp = rcu_dereference_sk_user_data(sk); in bareudp_udp_encap_recv()
65 if (!bareudp) in bareudp_udp_encap_recv()
73 if (bareudp->ethertype == htons(ETH_P_IP)) { in bareudp_udp_encap_recv()
78 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
85 } else if (ipversion == 6 && bareudp->multi_proto_mode) { in bareudp_udp_encap_recv()
88 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
91 } else if (bareudp->ethertype == htons(ETH_P_MPLS_UC)) { in bareudp_udp_encap_recv()
97 proto = bareudp->ethertype; in bareudp_udp_encap_recv()
98 } else if (bareudp->multi_proto_mode && in bareudp_udp_encap_recv()
102 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
113 proto = bareudp->ethertype; in bareudp_udp_encap_recv()
114 } else if (bareudp->multi_proto_mode && in bareudp_udp_encap_recv()
118 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
123 proto = bareudp->ethertype; in bareudp_udp_encap_recv()
128 !net_eq(bareudp->net, in bareudp_udp_encap_recv()
129 dev_net(bareudp->dev)))) { in bareudp_udp_encap_recv()
130 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
135 bareudp->dev->stats.rx_dropped++; in bareudp_udp_encap_recv()
139 skb->dev = bareudp->dev; in bareudp_udp_encap_recv()
160 ++bareudp->dev->stats.rx_frame_errors; in bareudp_udp_encap_recv()
161 ++bareudp->dev->stats.rx_errors; in bareudp_udp_encap_recv()
167 err = gro_cells_receive(&bareudp->gro_cells, skb); in bareudp_udp_encap_recv()
169 dev_sw_netstats_rx_add(bareudp->dev, len); in bareudp_udp_encap_recv()
186 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_init() local
193 err = gro_cells_init(&bareudp->gro_cells, dev); in bareudp_init()
203 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_uninit() local
205 gro_cells_destroy(&bareudp->gro_cells); in bareudp_uninit()
232 static int bareudp_socket_create(struct bareudp_dev *bareudp, __be16 port) in bareudp_socket_create() argument
237 sock = bareudp_create_sock(bareudp->net, port); in bareudp_socket_create()
243 tunnel_cfg.sk_user_data = bareudp; in bareudp_socket_create()
248 setup_udp_tunnel_sock(bareudp->net, sock, &tunnel_cfg); in bareudp_socket_create()
250 rcu_assign_pointer(bareudp->sock, sock); in bareudp_socket_create()
256 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_open() local
259 ret = bareudp_socket_create(bareudp, bareudp->port); in bareudp_open()
263 static void bareudp_sock_release(struct bareudp_dev *bareudp) in bareudp_sock_release() argument
267 sock = bareudp->sock; in bareudp_sock_release()
268 rcu_assign_pointer(bareudp->sock, NULL); in bareudp_sock_release()
275 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_stop() local
277 bareudp_sock_release(bareudp); in bareudp_stop()
282 struct bareudp_dev *bareudp, in bareudp_xmit_skb() argument
285 bool xnet = !net_eq(bareudp->net, dev_net(bareudp->dev)); in bareudp_xmit_skb()
287 struct socket *sock = rcu_dereference(bareudp->sock); in bareudp_xmit_skb()
300 rt = ip_route_output_tunnel(skb, dev, bareudp->net, &saddr, info, in bareudp_xmit_skb()
309 sport = udp_flow_src_port(bareudp->net, skb, in bareudp_xmit_skb()
310 bareudp->sport_min, USHRT_MAX, in bareudp_xmit_skb()
332 skb_set_inner_protocol(skb, bareudp->ethertype); in bareudp_xmit_skb()
334 tos, ttl, df, sport, bareudp->port, in bareudp_xmit_skb()
335 !net_eq(bareudp->net, dev_net(bareudp->dev)), in bareudp_xmit_skb()
345 struct bareudp_dev *bareudp, in bareudp6_xmit_skb() argument
348 bool xnet = !net_eq(bareudp->net, dev_net(bareudp->dev)); in bareudp6_xmit_skb()
350 struct socket *sock = rcu_dereference(bareudp->sock); in bareudp6_xmit_skb()
363 dst = ip6_dst_lookup_tunnel(skb, dev, bareudp->net, sock, &saddr, info, in bareudp6_xmit_skb()
371 sport = udp_flow_src_port(bareudp->net, skb, in bareudp6_xmit_skb()
372 bareudp->sport_min, USHRT_MAX, in bareudp6_xmit_skb()
397 info->key.label, sport, bareudp->port, in bareudp6_xmit_skb()
406 static bool bareudp_proto_valid(struct bareudp_dev *bareudp, __be16 proto) in bareudp_proto_valid() argument
408 if (bareudp->ethertype == proto) in bareudp_proto_valid()
411 if (!bareudp->multi_proto_mode) in bareudp_proto_valid()
414 if (bareudp->ethertype == htons(ETH_P_MPLS_UC) && in bareudp_proto_valid()
418 if (bareudp->ethertype == htons(ETH_P_IP) && in bareudp_proto_valid()
427 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_xmit() local
431 if (!bareudp_proto_valid(bareudp, skb->protocol)) { in bareudp_xmit()
444 err = bareudp6_xmit_skb(skb, dev, bareudp, info); in bareudp_xmit()
446 err = bareudp_xmit_skb(skb, dev, bareudp, info); in bareudp_xmit()
468 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_fill_metadata_dst() local
477 rt = ip_route_output_tunnel(skb, dev, bareudp->net, &saddr, in bareudp_fill_metadata_dst()
487 struct socket *sock = rcu_dereference(bareudp->sock); in bareudp_fill_metadata_dst()
489 dst = ip6_dst_lookup_tunnel(skb, dev, bareudp->net, sock, in bareudp_fill_metadata_dst()
501 info->key.tp_src = udp_flow_src_port(bareudp->net, skb, in bareudp_fill_metadata_dst()
502 bareudp->sport_min, in bareudp_fill_metadata_dst()
504 info->key.tp_dst = bareudp->port; in bareudp_fill_metadata_dst()
596 struct bareudp_dev *bareudp, *t = NULL; in bareudp_find_dev() local
598 list_for_each_entry(bareudp, &bn->bareudp_list, next) { in bareudp_find_dev()
599 if (conf->port == bareudp->port) in bareudp_find_dev()
600 t = bareudp; in bareudp_find_dev()
609 struct bareudp_dev *t, *bareudp = netdev_priv(dev); in bareudp_configure() local
612 bareudp->net = net; in bareudp_configure()
613 bareudp->dev = dev; in bareudp_configure()
623 bareudp->port = conf->port; in bareudp_configure()
624 bareudp->ethertype = conf->ethertype; in bareudp_configure()
625 bareudp->sport_min = conf->sport_min; in bareudp_configure()
626 bareudp->multi_proto_mode = conf->multi_proto_mode; in bareudp_configure()
632 list_add(&bareudp->next, &bn->bareudp_list); in bareudp_configure()
651 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_dellink() local
653 list_del(&bareudp->next); in bareudp_dellink()
696 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_fill_info() local
698 if (nla_put_be16(skb, IFLA_BAREUDP_PORT, bareudp->port)) in bareudp_fill_info()
700 if (nla_put_be16(skb, IFLA_BAREUDP_ETHERTYPE, bareudp->ethertype)) in bareudp_fill_info()
702 if (nla_put_u16(skb, IFLA_BAREUDP_SRCPORT_MIN, bareudp->sport_min)) in bareudp_fill_info()
704 if (bareudp->multi_proto_mode && in bareudp_fill_info()
774 struct bareudp_dev *bareudp, *next; in bareudp_destroy_tunnels() local
776 list_for_each_entry_safe(bareudp, next, &bn->bareudp_list, next) in bareudp_destroy_tunnels()
777 unregister_netdevice_queue(bareudp->dev, head); in bareudp_destroy_tunnels()