fou                49 net/ipv4/fou.c static inline struct fou *fou_from_sock(struct sock *sk)
fou                54 net/ipv4/fou.c static int fou_recv_pull(struct sk_buff *skb, struct fou *fou, size_t len)
fou                59 net/ipv4/fou.c 	if (fou->family == AF_INET)
fou                73 net/ipv4/fou.c 	struct fou *fou = fou_from_sock(sk);
fou                75 net/ipv4/fou.c 	if (!fou)
fou                78 net/ipv4/fou.c 	if (fou_recv_pull(skb, fou, sizeof(struct udphdr)))
fou                81 net/ipv4/fou.c 	return -fou->protocol;
fou               120 net/ipv4/fou.c 	struct fou *fou = fou_from_sock(sk);
fou               127 net/ipv4/fou.c 	if (!fou)
fou               156 net/ipv4/fou.c 		if (fou_recv_pull(skb, fou, sizeof(struct udphdr)))
fou               180 net/ipv4/fou.c 	if (fou->family == AF_INET)
fou               201 net/ipv4/fou.c 					     !!(fou->flags &
fou               323 net/ipv4/fou.c 	struct fou *fou = fou_from_sock(sk);
fou               388 net/ipv4/fou.c 						 !!(fou->flags &
fou               503 net/ipv4/fou.c static bool fou_cfg_cmp(struct fou *fou, struct fou_cfg *cfg)
fou               505 net/ipv4/fou.c 	struct sock *sk = fou->sock->sk;
fou               508 net/ipv4/fou.c 	if (fou->family != udp_cfg->family ||
fou               509 net/ipv4/fou.c 	    fou->port != udp_cfg->local_udp_port ||
fou               514 net/ipv4/fou.c 	if (fou->family == AF_INET) {
fou               533 net/ipv4/fou.c static int fou_add_to_port_list(struct net *net, struct fou *fou,
fou               537 net/ipv4/fou.c 	struct fou *fout;
fou               547 net/ipv4/fou.c 	list_add(&fou->list, &fn->fou_list);
fou               553 net/ipv4/fou.c static void fou_release(struct fou *fou)
fou               555 net/ipv4/fou.c 	struct socket *sock = fou->sock;
fou               557 net/ipv4/fou.c 	list_del(&fou->list);
fou               560 net/ipv4/fou.c 	kfree_rcu(fou, rcu);
fou               567 net/ipv4/fou.c 	struct fou *fou = NULL;
fou               578 net/ipv4/fou.c 	fou = kzalloc(sizeof(*fou), GFP_KERNEL);
fou               579 net/ipv4/fou.c 	if (!fou) {
fou               586 net/ipv4/fou.c 	fou->port = cfg->udp_config.local_udp_port;
fou               587 net/ipv4/fou.c 	fou->family = cfg->udp_config.family;
fou               588 net/ipv4/fou.c 	fou->flags = cfg->flags;
fou               589 net/ipv4/fou.c 	fou->type = cfg->type;
fou               590 net/ipv4/fou.c 	fou->sock = sock;
fou               594 net/ipv4/fou.c 	tunnel_cfg.sk_user_data = fou;
fou               603 net/ipv4/fou.c 		fou->protocol = cfg->protocol;
fou               619 net/ipv4/fou.c 	err = fou_add_to_port_list(net, fou, cfg);
fou               629 net/ipv4/fou.c 	kfree(fou);
fou               640 net/ipv4/fou.c 	struct fou *fou;
fou               643 net/ipv4/fou.c 	list_for_each_entry(fou, &fn->fou_list, list) {
fou               644 net/ipv4/fou.c 		if (fou_cfg_cmp(fou, cfg)) {
fou               645 net/ipv4/fou.c 			fou_release(fou);
fou               788 net/ipv4/fou.c static int fou_fill_info(struct fou *fou, struct sk_buff *msg)
fou               790 net/ipv4/fou.c 	struct sock *sk = fou->sock->sk;
fou               792 net/ipv4/fou.c 	if (nla_put_u8(msg, FOU_ATTR_AF, fou->sock->sk->sk_family) ||
fou               793 net/ipv4/fou.c 	    nla_put_be16(msg, FOU_ATTR_PORT, fou->port) ||
fou               795 net/ipv4/fou.c 	    nla_put_u8(msg, FOU_ATTR_IPPROTO, fou->protocol) ||
fou               796 net/ipv4/fou.c 	    nla_put_u8(msg, FOU_ATTR_TYPE, fou->type) ||
fou               800 net/ipv4/fou.c 	if (fou->flags & FOU_F_REMCSUM_NOPARTIAL)
fou               804 net/ipv4/fou.c 	if (fou->sock->sk->sk_family == AF_INET) {
fou               824 net/ipv4/fou.c static int fou_dump_info(struct fou *fou, u32 portid, u32 seq,
fou               833 net/ipv4/fou.c 	if (fou_fill_info(fou, skb) < 0)
fou               850 net/ipv4/fou.c 	struct fou *fout;
fou               895 net/ipv4/fou.c 	struct fou *fout;
fou              1257 net/ipv4/fou.c 	struct fou *fou, *next;
fou              1261 net/ipv4/fou.c 	list_for_each_entry_safe(fou, next, &fn->fou_list, list)
fou              1262 net/ipv4/fou.c 		fou_release(fou);