Skip to contentSkip to conversation

Convert kernel to stdint types

PATCH In review Felix Janda 2 participants 5 messages May 16, 2015 – Jun 16, 2015 netfilter

lore
Share & tools
lore
#0 lore raw

PATCH 2/3 Convert kernel to stdint types

---
 include/libnetfilter_log/linux_nfnetlink_log.h | 42 +++++++++++++-------------
 1 file changed, 21 insertions(+), 21 deletions(-)
include/libnetfilter_log/linux_nfnetlink_log.h +21 -21
index 9f38277..c647581 100644
@@ -20,31 +20,31 @@ enum nfulnl_msg_types {
 };
 
 struct nfulnl_msg_packet_hdr {
-	__be16		hw_protocol;	/* hw protocol (network order) */
-	__u8	hook;		/* netfilter hook */
-	__u8	_pad;
+	uint16_t		hw_protocol;	/* hw protocol (network order) */
+	uint8_t	hook;		/* netfilter hook */
+	uint8_t	_pad;
 };
 
 struct nfulnl_msg_packet_hw {
-	__be16		hw_addrlen;
-	__u16	_pad;
-	__u8	hw_addr[8];
+	uint16_t		hw_addrlen;
+	uint16_t	_pad;
+	uint8_t	hw_addr[8];
 };
 
 struct nfulnl_msg_packet_timestamp {
-	__aligned_be64	sec;
-	__aligned_be64	usec;
+	aligned_u64	sec;
+	aligned_u64	usec;
 };
 
 enum nfulnl_attr_type {
 	NFULA_UNSPEC,
 	NFULA_PACKET_HDR,
-	NFULA_MARK,			/* __u32 nfmark */
+	NFULA_MARK,			/* uint32_t nfmark */
 	NFULA_TIMESTAMP,		/* nfulnl_msg_packet_timestamp */
-	NFULA_IFINDEX_INDEV,		/* __u32 ifindex */
-	NFULA_IFINDEX_OUTDEV,		/* __u32 ifindex */
-	NFULA_IFINDEX_PHYSINDEV,	/* __u32 ifindex */
-	NFULA_IFINDEX_PHYSOUTDEV,	/* __u32 ifindex */
+	NFULA_IFINDEX_INDEV,		/* uint32_t ifindex */
+	NFULA_IFINDEX_OUTDEV,		/* uint32_t ifindex */
+	NFULA_IFINDEX_PHYSINDEV,	/* uint32_t ifindex */
+	NFULA_IFINDEX_PHYSOUTDEV,	/* uint32_t ifindex */
 	NFULA_HWADDR,			/* nfulnl_msg_packet_hw */
 	NFULA_PAYLOAD,			/* opaque data payload */
 	NFULA_PREFIX,			/* string prefix */
@@ -69,23 +69,23 @@ enum nfulnl_msg_config_cmds {
 };
 
 struct nfulnl_msg_config_cmd {
-	__u8	command;	/* nfulnl_msg_config_cmds */
+	uint8_t	command;	/* nfulnl_msg_config_cmds */
 } __attribute__ ((packed));
 
 struct nfulnl_msg_config_mode {
-	__be32		copy_range;
-	__u8	copy_mode;
-	__u8	_pad;
+	uint32_t		copy_range;
+	uint8_t	copy_mode;
+	uint8_t	_pad;
 } __attribute__ ((packed));
 
 enum nfulnl_attr_config {
 	NFULA_CFG_UNSPEC,
 	NFULA_CFG_CMD,			/* nfulnl_msg_config_cmd */
 	NFULA_CFG_MODE,			/* nfulnl_msg_config_mode */
-	NFULA_CFG_NLBUFSIZ,		/* __u32 buffer size */
-	NFULA_CFG_TIMEOUT,		/* __u32 in 1/100 s */
-	NFULA_CFG_QTHRESH,		/* __u32 */
-	NFULA_CFG_FLAGS,		/* __u16 */
+	NFULA_CFG_NLBUFSIZ,		/* uint32_t buffer size */
+	NFULA_CFG_TIMEOUT,		/* uint32_t in 1/100 s */
+	NFULA_CFG_QTHRESH,		/* uint32_t */
+	NFULA_CFG_FLAGS,		/* uint16_t */
 	__NFULA_CFG_MAX
 };
 #define NFULA_CFG_MAX (__NFULA_CFG_MAX -1)
Signature · 1 line
2.3.6
#1 lore raw
Quoted 10 lines · Felix Janda
---
 include/libnetfilter_log/linux_nfnetlink_log.h | 42 +++++++++++++-------------
 1 file changed, 21 insertions(+), 21 deletions(-)
include/libnetfilter_log/linux_nfnetlink_log.h +0 -0
index 9f38277..c647581 100644

include/libnetfilter_log/linux_nfnetlink_log.h enum nfulnl_msg_types { · line 26

Quoted 10 lines
include/libnetfilter_log/linux_nfnetlink_log.h +3 -3
@@ -20,31 +20,31 @@ enum nfulnl_msg_types {
 };
 
 struct nfulnl_msg_packet_hdr {
-	__be16		hw_protocol;	/* hw protocol (network order) */
-	__u8	hook;		/* netfilter hook */
-	__u8	_pad;
+	uint16_t		hw_protocol;	/* hw protocol (network order) */
+	uint8_t	hook;		/* netfilter hook */
+	uint8_t	_pad;
 };

I have skipped this patch in this series. It is mangling a cached header from the kernel, I guess there must be a way to make musl happy without this change given that we follow the same approach in other libraries.

Thanks.

#2 lore raw
Quoted 27 lines · Pablo Neira Ayuso
Quoted 10 lines · Felix Janda
---
 include/libnetfilter_log/linux_nfnetlink_log.h | 42 +++++++++++++-------------
 1 file changed, 21 insertions(+), 21 deletions(-)
include/libnetfilter_log/linux_nfnetlink_log.h +0 -0
index 9f38277..c647581 100644

include/libnetfilter_log/linux_nfnetlink_log.h enum nfulnl_msg_types { · line 26

Quoted 10 lines
include/libnetfilter_log/linux_nfnetlink_log.h +3 -3
@@ -20,31 +20,31 @@ enum nfulnl_msg_types {
 };
 
 struct nfulnl_msg_packet_hdr {
-	__be16		hw_protocol;	/* hw protocol (network order) */
-	__u8	hook;		/* netfilter hook */
-	__u8	_pad;
+	uint16_t		hw_protocol;	/* hw protocol (network order) */
+	uint8_t	hook;		/* netfilter hook */
+	uint8_t	_pad;
 };

I have skipped this patch in this series. It is mangling a cached header from the kernel, I guess there must be a way to make musl happy without this change given that we follow the same approach in other libraries.

Quoted 1 line

Thanks.

Yes, the conversion of types is not strictly necessary. As long as <linux/types.h> is included, everything is fine for musl. I have likely misunderstood your previous mail. Feel free to ignore patches mangling kernel headers after updating them.

Thanks for your review and pushing of patches so far!

Felix

#3 lore raw
Quoted 28 lines · Felix Janda
Quoted 27 lines · Pablo Neira Ayuso
Quoted 10 lines · Felix Janda
---
 include/libnetfilter_log/linux_nfnetlink_log.h | 42 +++++++++++++-------------
 1 file changed, 21 insertions(+), 21 deletions(-)
include/libnetfilter_log/linux_nfnetlink_log.h +0 -0
index 9f38277..c647581 100644

include/libnetfilter_log/linux_nfnetlink_log.h enum nfulnl_msg_types { · line 26

Quoted 10 lines
include/libnetfilter_log/linux_nfnetlink_log.h +3 -3
@@ -20,31 +20,31 @@ enum nfulnl_msg_types {
 };
 
 struct nfulnl_msg_packet_hdr {
-	__be16		hw_protocol;	/* hw protocol (network order) */
-	__u8	hook;		/* netfilter hook */
-	__u8	_pad;
+	uint16_t		hw_protocol;	/* hw protocol (network order) */
+	uint8_t	hook;		/* netfilter hook */
+	uint8_t	_pad;
 };

I have skipped this patch in this series. It is mangling a cached header from the kernel, I guess there must be a way to make musl happy without this change given that we follow the same approach in other libraries.

Quoted 6 lines
Quoted 1 line

Thanks.

Yes, the conversion of types is not strictly necessary. As long as <linux/types.h> is included, everything is fine for musl. I have likely misunderstood your previous mail. Feel free to ignore patches mangling kernel headers after updating them.

This is what I did. I mangled the patches to skip the chunks that modify the kernel headers that we cache in the trees.

Quoted 1 line

Thanks for your review and pushing of patches so far!

Thanks for confirming and for the rather large patchset to address the musl problems.

#4 lore raw

Pablo Neira Ayuso wrote:
[..]

Quoted 4 lines
Quoted 1 line

Thanks for your review and pushing of patches so far!

Thanks for confirming and for the rather large patchset to address the musl problems.

Sorry for the spam...

Now everything non-historical on netfilter.org builds fine except for:
- ulogd2 (patches have not been applied yet)
- libnetfilter_queue (small oversight of mine, patch will follow)
- nft-sync (not tested before, patch will follow)
- iptables (previous patches solve only some problems, more patches will follow)
- libnl-nft (is this still in use?)
- conntrack rpc helper (musl lacks rpc headers, I would like to add a configure test to make it conditional on the presence of rpc headers)

Felix