[UDP]: Allow users to configure UDP-Lite.
Let's give users an option for disabling UDP-Lite (~4K).
old:
| text data bss dec hex filename
| 286498 12432 6072 305002 4a76a net/ipv4/built-in.o
| 193830 8192 3204 205226 321aa net/ipv6/ipv6.o
new (without UDP-Lite):
| text data bss dec hex filename
| 284086 12136 5432 301654 49a56 net/ipv4/built-in.o
| 191835 7832 3076 202743 317f7 net/ipv6/ipv6.o
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
diff --git a/include/linux/udp.h b/include/linux/udp.h
index 8ec703f..4144664 100644
--- a/include/linux/udp.h
+++ b/include/linux/udp.h
@@ -70,8 +70,10 @@
#define UDPLITE_BIT 0x1 /* set by udplite proto init function */
#define UDPLITE_SEND_CC 0x2 /* set via udplite setsockopt */
#define UDPLITE_RECV_CC 0x4 /* set via udplite setsocktopt */
+#ifdef CONFIG_IP_UDPLITE
__u8 pcflag; /* marks socket as UDP-Lite if > 0 */
__u8 unused[3];
+#endif
/*
* For encapsulation sockets.
*/
@@ -82,7 +84,16 @@
{
return (struct udp_sock *)sk;
}
+
+#ifdef CONFIG_IP_UDPLITE
#define IS_UDPLITE(__sk) (udp_sk(__sk)->pcflag)
+#define IS_PROTO_UDPLITE(__proto) ((__proto) == IPPROTO_UDPLITE)
+#define IS_SOL_UDPFAMILY(level) ((level) == SOL_UDP || (level) == SOL_UDPLITE)
+#else
+#define IS_UDPLITE(__sk) 0
+#define IS_PROTO_UDPLITE(__proto) 0
+#define IS_SOL_UDPFAMILY(level) ((level) == SOL_UDP)
+#endif
#endif