1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _IP_SET_GETPORT_H
3 #define _IP_SET_GETPORT_H
4 
5 #include <linux/skbuff.h>
6 #include <linux/types.h>
7 #include <uapi/linux/in.h>
8 
9 extern bool ip_set_get_ip4_port(const struct sk_buff *skb, bool src,
10 				__be16 *port, u8 *proto);
11 
12 #if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
13 extern bool ip_set_get_ip6_port(const struct sk_buff *skb, bool src,
14 				__be16 *port, u8 *proto);
15 #else
16 static inline bool ip_set_get_ip6_port(const struct sk_buff *skb, bool src,
17 				       __be16 *port, u8 *proto)
18 {
19 	return false;
20 }
21 #endif
22 
23 static inline bool ip_set_proto_with_ports(u8 proto)
24 {
25 	switch (proto) {
26 	case IPPROTO_TCP:
27 	case IPPROTO_SCTP:
28 	case IPPROTO_UDP:
29 	case IPPROTO_UDPLITE:
30 		return true;
31 	}
32 	return false;
33 }
34 
35 #endif /*_IP_SET_GETPORT_H*/
36