[PATCH iproute2] ip fou: Pass family attribute as u8

Subsystems: the rest

STALE3165d

4 messages, 2 authors, 2018-01-09 · open the first message on its own page

[PATCH iproute2] ip fou: Pass family attribute as u8

From: Filip Moc <hidden>
Date: 2018-01-07 14:35:59

This fixes fou on big-endian systems.

Signed-off-by: Filip Moc <redacted>
---
 ip/ipfou.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ip/ipfou.c b/ip/ipfou.c
index febc2c8c..1f392ade 100644
--- a/ip/ipfou.c
+++ b/ip/ipfou.c
@@ -52,7 +52,7 @@ static int fou_parse_opt(int argc, char **argv, struct nlmsghdr *n,
 	__u8 ipproto, type;
 	bool gue_set = false;
 	int ipproto_set = 0;
-	unsigned short family = AF_INET;
+	__u8 family = AF_INET;
 
 	while (argc > 0) {
 		if (!matches(*argv, "port")) {
@@ -103,7 +103,7 @@ static int fou_parse_opt(int argc, char **argv, struct nlmsghdr *n,
 
 	addattr16(n, 1024, FOU_ATTR_PORT, port);
 	addattr8(n, 1024, FOU_ATTR_TYPE, type);
-	addattr16(n, 1024, FOU_ATTR_AF, family);
+	addattr8(n, 1024, FOU_ATTR_AF, family);
 
 	if (ipproto_set)
 		addattr8(n, 1024, FOU_ATTR_IPPROTO, ipproto);
-- 
2.11.0

Re: [PATCH iproute2] ip fou: Pass family attribute as u8

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2018-01-07 20:28:51

On Sun, 7 Jan 2018 15:28:13 +0100
Filip Moc [off-list ref] wrote:
quoted hunk
This fixes fou on big-endian systems.

Signed-off-by: Filip Moc <redacted>
---
 ip/ipfou.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ip/ipfou.c b/ip/ipfou.c
index febc2c8c..1f392ade 100644
--- a/ip/ipfou.c
+++ b/ip/ipfou.c
@@ -52,7 +52,7 @@ static int fou_parse_opt(int argc, char **argv, struct nlmsghdr *n,
 	__u8 ipproto, type;
 	bool gue_set = false;
 	int ipproto_set = 0;
-	unsigned short family = AF_INET;
+	__u8 family = AF_INET;
 
 	while (argc > 0) {
 		if (!matches(*argv, "port")) {
@@ -103,7 +103,7 @@ static int fou_parse_opt(int argc, char **argv, struct nlmsghdr *n,
 
 	addattr16(n, 1024, FOU_ATTR_PORT, port);
 	addattr8(n, 1024, FOU_ATTR_TYPE, type);
-	addattr16(n, 1024, FOU_ATTR_AF, family);
+	addattr8(n, 1024, FOU_ATTR_AF, family);
 
 	if (ipproto_set)
 		addattr8(n, 1024, FOU_ATTR_IPPROTO, ipproto);
How is this binary compatiable with older versions.

Re: [PATCH iproute2] ip fou: Pass family attribute as u8

From: Filip Moc <hidden>
Date: 2018-01-07 21:25:21

Hi Stephen,
How is this binary compatiable with older versions.
I'm not sure what you mean. Kernel expects family attribute to be passed as u8
(and it always did). But current ip passes family attribute as u16. It works
now only on little endian systems because the relevant byte happens to be on
the same position. It is the current version of ip which is incompatible.

Filip

Re: [PATCH iproute2] ip fou: Pass family attribute as u8

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2018-01-09 16:01:46

On Sun, 7 Jan 2018 15:28:13 +0100
Filip Moc [off-list ref] wrote:
This fixes fou on big-endian systems.

Signed-off-by: Filip Moc <redacted>
Applied
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help