From b3e0370a37daeecc44ddaf03bbd98c2e8ff4513d Mon Sep 17 00:00:00 2001 From: Justin Pettit Date: Sat, 29 Oct 2011 20:04:21 -0700 Subject: [PATCH] nx-match: Increase upper bound length for an nx_match. Commits d2c0fed (nicira-ext: Bump number of registers to five from four.) and 7257b5 (Implement new fragment handling policy.) added new match fields, but didn't update the maximum length of an NXM message. This commit increases the maximum NXM size to 384 bytes. --- lib/nx-match.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/nx-match.h b/lib/nx-match.h index 64e22c9b5..fbb8946ba 100644 --- a/lib/nx-match.h +++ b/lib/nx-match.h @@ -91,8 +91,8 @@ nxm_decode_n_bits(ovs_be16 ofs_nbits) return (ntohs(ofs_nbits) & 0x3f) + 1; } -/* Upper bound on the length of an nx_match. The longest nx_match (assuming - * we implement 4 registers) would be: +/* Upper bound on the length of an nx_match. The longest nx_match (an + * IPV6 neighbor discovery message using 5 registers) would be: * * header value mask total * ------ ----- ---- ----- @@ -102,6 +102,7 @@ nxm_decode_n_bits(ovs_be16 ofs_nbits) * NXM_OF_ETH_TYPE 4 2 -- 6 * NXM_OF_VLAN_TCI 4 2 2 8 * NXM_OF_IP_TOS 4 1 -- 5 + * NXM_NX_IP_FRAG 4 1 1 8 * NXM_OF_IP_PROTO 4 2 -- 6 * NXM_OF_IPV6_SRC_W 4 16 16 36 * NXM_OF_IPV6_DST_W 4 16 16 36 @@ -113,13 +114,14 @@ nxm_decode_n_bits(ovs_be16 ofs_nbits) * NXM_NX_REG_W(1) 4 4 4 12 * NXM_NX_REG_W(2) 4 4 4 12 * NXM_NX_REG_W(3) 4 4 4 12 + * NXM_NX_REG_W(4) 4 4 4 12 * NXM_NX_TUN_ID_W 4 8 8 20 * ------------------------------------------- - * total 237 + * total 257 * * So this value is conservative. */ -#define NXM_MAX_LEN 256 +#define NXM_MAX_LEN 384 /* This is my guess at the length of a "typical" nx_match, for use in * predicting space requirements. */ -- 2.43.0