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);