Lines Matching refs:bareudp
65 struct bareudp_dev *bareudp; in bareudp_udp_encap_recv() local
73 bareudp = rcu_dereference_sk_user_data(sk); in bareudp_udp_encap_recv()
74 if (!bareudp) in bareudp_udp_encap_recv()
82 if (bareudp->ethertype == htons(ETH_P_IP)) { in bareudp_udp_encap_recv()
87 dev_dstats_rx_dropped(bareudp->dev); in bareudp_udp_encap_recv()
94 } else if (ipversion == 6 && bareudp->multi_proto_mode) { in bareudp_udp_encap_recv()
97 dev_dstats_rx_dropped(bareudp->dev); in bareudp_udp_encap_recv()
100 } else if (bareudp->ethertype == htons(ETH_P_MPLS_UC)) { in bareudp_udp_encap_recv()
106 proto = bareudp->ethertype; in bareudp_udp_encap_recv()
107 } else if (bareudp->multi_proto_mode && in bareudp_udp_encap_recv()
111 dev_dstats_rx_dropped(bareudp->dev); in bareudp_udp_encap_recv()
122 proto = bareudp->ethertype; in bareudp_udp_encap_recv()
123 } else if (bareudp->multi_proto_mode && in bareudp_udp_encap_recv()
127 dev_dstats_rx_dropped(bareudp->dev); in bareudp_udp_encap_recv()
132 proto = bareudp->ethertype; in bareudp_udp_encap_recv()
137 !net_eq(bareudp->net, in bareudp_udp_encap_recv()
138 dev_net(bareudp->dev)))) { in bareudp_udp_encap_recv()
139 dev_dstats_rx_dropped(bareudp->dev); in bareudp_udp_encap_recv()
147 dev_dstats_rx_dropped(bareudp->dev); in bareudp_udp_encap_recv()
151 skb->dev = bareudp->dev; in bareudp_udp_encap_recv()
163 DEV_STATS_INC(bareudp->dev, rx_length_errors); in bareudp_udp_encap_recv()
164 DEV_STATS_INC(bareudp->dev, rx_errors); in bareudp_udp_encap_recv()
188 DEV_STATS_INC(bareudp->dev, rx_frame_errors); in bareudp_udp_encap_recv()
189 DEV_STATS_INC(bareudp->dev, rx_errors); in bareudp_udp_encap_recv()
195 err = gro_cells_receive(&bareudp->gro_cells, skb); in bareudp_udp_encap_recv()
197 dev_dstats_rx_add(bareudp->dev, len); in bareudp_udp_encap_recv()
214 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_init() local
217 err = gro_cells_init(&bareudp->gro_cells, dev); in bareudp_init()
226 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_uninit() local
228 gro_cells_destroy(&bareudp->gro_cells); in bareudp_uninit()
255 static int bareudp_socket_create(struct bareudp_dev *bareudp, __be16 port) in bareudp_socket_create() argument
260 sock = bareudp_create_sock(bareudp->net, port); in bareudp_socket_create()
266 tunnel_cfg.sk_user_data = bareudp; in bareudp_socket_create()
271 setup_udp_tunnel_sock(bareudp->net, sock, &tunnel_cfg); in bareudp_socket_create()
273 rcu_assign_pointer(bareudp->sock, sock); in bareudp_socket_create()
279 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_open() local
282 ret = bareudp_socket_create(bareudp, bareudp->port); in bareudp_open()
286 static void bareudp_sock_release(struct bareudp_dev *bareudp) in bareudp_sock_release() argument
290 sock = bareudp->sock; in bareudp_sock_release()
291 rcu_assign_pointer(bareudp->sock, NULL); in bareudp_sock_release()
298 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_stop() local
300 bareudp_sock_release(bareudp); in bareudp_stop()
305 struct bareudp_dev *bareudp, in bareudp_xmit_skb() argument
309 bool xnet = !net_eq(bareudp->net, dev_net(bareudp->dev)); in bareudp_xmit_skb()
311 struct socket *sock = rcu_dereference(bareudp->sock); in bareudp_xmit_skb()
326 sport = udp_flow_src_port(bareudp->net, skb, in bareudp_xmit_skb()
327 bareudp->sport_min, USHRT_MAX, in bareudp_xmit_skb()
329 rt = udp_tunnel_dst_lookup(skb, dev, bareudp->net, 0, &saddr, &info->key, in bareudp_xmit_skb()
330 sport, bareudp->port, key->tos, in bareudp_xmit_skb()
361 skb_set_inner_protocol(skb, bareudp->ethertype); in bareudp_xmit_skb()
363 tos, ttl, df, sport, bareudp->port, in bareudp_xmit_skb()
364 !net_eq(bareudp->net, dev_net(bareudp->dev)), in bareudp_xmit_skb()
375 struct bareudp_dev *bareudp, in bareudp6_xmit_skb() argument
379 bool xnet = !net_eq(bareudp->net, dev_net(bareudp->dev)); in bareudp6_xmit_skb()
381 struct socket *sock = rcu_dereference(bareudp->sock); in bareudp6_xmit_skb()
396 sport = udp_flow_src_port(bareudp->net, skb, in bareudp6_xmit_skb()
397 bareudp->sport_min, USHRT_MAX, in bareudp6_xmit_skb()
399 dst = udp_tunnel6_dst_lookup(skb, dev, bareudp->net, sock, 0, &saddr, in bareudp6_xmit_skb()
400 key, sport, bareudp->port, key->tos, in bareudp6_xmit_skb()
432 info->key.label, sport, bareudp->port, in bareudp6_xmit_skb()
443 static bool bareudp_proto_valid(struct bareudp_dev *bareudp, __be16 proto) in bareudp_proto_valid() argument
445 if (bareudp->ethertype == proto) in bareudp_proto_valid()
448 if (!bareudp->multi_proto_mode) in bareudp_proto_valid()
451 if (bareudp->ethertype == htons(ETH_P_MPLS_UC) && in bareudp_proto_valid()
455 if (bareudp->ethertype == htons(ETH_P_IP) && in bareudp_proto_valid()
464 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_xmit() local
468 if (!bareudp_proto_valid(bareudp, skb->protocol)) { in bareudp_xmit()
481 err = bareudp6_xmit_skb(skb, dev, bareudp, info); in bareudp_xmit()
483 err = bareudp_xmit_skb(skb, dev, bareudp, info); in bareudp_xmit()
505 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_fill_metadata_dst() local
510 sport = udp_flow_src_port(bareudp->net, skb, in bareudp_fill_metadata_dst()
511 bareudp->sport_min, USHRT_MAX, in bareudp_fill_metadata_dst()
518 rt = udp_tunnel_dst_lookup(skb, dev, bareudp->net, 0, &saddr, in bareudp_fill_metadata_dst()
519 &info->key, sport, bareudp->port, in bareudp_fill_metadata_dst()
530 struct socket *sock = rcu_dereference(bareudp->sock); in bareudp_fill_metadata_dst()
532 dst = udp_tunnel6_dst_lookup(skb, dev, bareudp->net, sock, in bareudp_fill_metadata_dst()
534 sport, bareudp->port, info->key.tos, in bareudp_fill_metadata_dst()
546 info->key.tp_dst = bareudp->port; in bareudp_fill_metadata_dst()
636 struct bareudp_dev *bareudp, *t = NULL; in bareudp_find_dev() local
638 list_for_each_entry(bareudp, &bn->bareudp_list, next) { in bareudp_find_dev()
639 if (conf->port == bareudp->port) in bareudp_find_dev()
640 t = bareudp; in bareudp_find_dev()
650 struct bareudp_dev *t, *bareudp = netdev_priv(dev); in bareudp_configure() local
653 bareudp->net = net; in bareudp_configure()
654 bareudp->dev = dev; in bareudp_configure()
668 bareudp->port = conf->port; in bareudp_configure()
669 bareudp->ethertype = conf->ethertype; in bareudp_configure()
670 bareudp->sport_min = conf->sport_min; in bareudp_configure()
671 bareudp->multi_proto_mode = conf->multi_proto_mode; in bareudp_configure()
677 list_add(&bareudp->next, &bn->bareudp_list); in bareudp_configure()
696 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_dellink() local
698 list_del(&bareudp->next); in bareudp_dellink()
742 struct bareudp_dev *bareudp = netdev_priv(dev); in bareudp_fill_info() local
744 if (nla_put_be16(skb, IFLA_BAREUDP_PORT, bareudp->port)) in bareudp_fill_info()
746 if (nla_put_be16(skb, IFLA_BAREUDP_ETHERTYPE, bareudp->ethertype)) in bareudp_fill_info()
748 if (nla_put_u16(skb, IFLA_BAREUDP_SRCPORT_MIN, bareudp->sport_min)) in bareudp_fill_info()
750 if (bareudp->multi_proto_mode && in bareudp_fill_info()
785 struct bareudp_dev *bareudp, *next; in bareudp_exit_rtnl_net() local
787 list_for_each_entry_safe(bareudp, next, &bn->bareudp_list, next) in bareudp_exit_rtnl_net()
788 bareudp_dellink(bareudp->dev, dev_kill_list); in bareudp_exit_rtnl_net()