aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/map/map.h
diff options
context:
space:
mode:
authorOle Troan <ot@cisco.com>2016-08-25 12:26:47 +0200
committerDave Barach <openvpp@barachs.net>2016-08-29 11:57:31 +0000
commitd575e69177cc1462658ec1de1149730e0ffb0425 (patch)
tree8dd59056b41c380ffb1cd24ef9adc14d21fd3794 /vnet/vnet/map/map.h
parentd46cca174394794073585da4819eacc2bd72e862 (diff)
VPP-310 Mapping algorithm compute wrong ea-bits
Mapping of IPv4 prefixes ended up writing past IPv6 prefix + EA bits length. (Added some unit testing code). Change-Id: I59893b44eea5cebf00a23afc405832741f84cf4f Signed-off-by: Ole Troan <ot@cisco.com>
Diffstat (limited to 'vnet/vnet/map/map.h')
-rw-r--r--vnet/vnet/map/map.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/vnet/vnet/map/map.h b/vnet/vnet/map/map.h
index 4b3df5f0842..fb532291f8a 100644
--- a/vnet/vnet/map/map.h
+++ b/vnet/vnet/map/map.h
@@ -358,7 +358,7 @@ map_get_sfx (map_domain_t *d, u32 addr, u16 port)
/* IPv4 prefix */
if (d->flags & MAP_DOMAIN_PREFIX)
- return (u64) (addr & ~d->suffix_mask) << 16;
+ return (u64) (addr & (0xFFFFFFFF << d->suffix_shift)) << 16;
/* Shared or full IPv4 address */
return ((u64) addr << 16) | psid;