diff --git a/Documentation/netlink/specs/fou.yaml b/Documentation/netlink/specs/fou.yaml index 331f1b342b3a..3e6a38e31202 100644 --- a/Documentation/netlink/specs/fou.yaml +++ b/Documentation/netlink/specs/fou.yaml @@ -44,12 +44,14 @@ attribute-sets: - name: type type: u8 + enum: encap-type - name: remcsum-nopartial type: flag - name: local-v4 type: u32 + byte-order: big-endian - name: local-v6 type: binary @@ -58,6 +60,7 @@ attribute-sets: - name: peer-v4 type: u32 + byte-order: big-endian - name: peer-v6 type: binary @@ -90,6 +93,7 @@ operations: request: &all_attrs attributes: - port + - af - ipproto - type - remcsum-nopartial diff --git a/net/ipv4/fou_nl.c b/net/ipv4/fou_nl.c index 309d5ba983d0..ccd134ba352d 100644 --- a/net/ipv4/fou_nl.c +++ b/net/ipv4/fou_nl.c @@ -16,11 +16,11 @@ const struct nla_policy fou_nl_policy[FOU_ATTR_IFINDEX + 1] = { [FOU_ATTR_PORT] = { .type = NLA_BE16, }, [FOU_ATTR_AF] = { .type = NLA_U8, }, [FOU_ATTR_IPPROTO] = NLA_POLICY_MIN(NLA_U8, 1), - [FOU_ATTR_TYPE] = { .type = NLA_U8, }, + [FOU_ATTR_TYPE] = NLA_POLICY_MAX(NLA_U8, 2), [FOU_ATTR_REMCSUM_NOPARTIAL] = { .type = NLA_FLAG, }, - [FOU_ATTR_LOCAL_V4] = { .type = NLA_U32, }, + [FOU_ATTR_LOCAL_V4] = { .type = NLA_BE32, }, [FOU_ATTR_LOCAL_V6] = NLA_POLICY_EXACT_LEN(16), - [FOU_ATTR_PEER_V4] = { .type = NLA_U32, }, + [FOU_ATTR_PEER_V4] = { .type = NLA_BE32, }, [FOU_ATTR_PEER_V6] = NLA_POLICY_EXACT_LEN(16), [FOU_ATTR_PEER_PORT] = { .type = NLA_BE16, }, [FOU_ATTR_IFINDEX] = { .type = NLA_S32, },