GNU Linux-libre 4.14.290-gnu1
[releases.git] / include / linux / netfilter / ipset / ip_set_getport.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _IP_SET_GETPORT_H
3 #define _IP_SET_GETPORT_H
4
5 extern bool ip_set_get_ip4_port(const struct sk_buff *skb, bool src,
6                                 __be16 *port, u8 *proto);
7
8 #if defined(CONFIG_IP6_NF_IPTABLES) || defined(CONFIG_IP6_NF_IPTABLES_MODULE)
9 extern bool ip_set_get_ip6_port(const struct sk_buff *skb, bool src,
10                                 __be16 *port, u8 *proto);
11 #else
12 static inline bool ip_set_get_ip6_port(const struct sk_buff *skb, bool src,
13                                        __be16 *port, u8 *proto)
14 {
15         return false;
16 }
17 #endif
18
19 extern bool ip_set_get_ip_port(const struct sk_buff *skb, u8 pf, bool src,
20                                 __be16 *port);
21
22 static inline bool ip_set_proto_with_ports(u8 proto)
23 {
24         switch (proto) {
25         case IPPROTO_TCP:
26         case IPPROTO_SCTP:
27         case IPPROTO_UDP:
28         case IPPROTO_UDPLITE:
29                 return true;
30         }
31         return false;
32 }
33
34 #endif /*_IP_SET_GETPORT_H*/