diff options
author | Ole Troan <ot@cisco.com> | 2016-08-25 12:26:47 +0200 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2016-08-29 11:57:31 +0000 |
commit | d575e69177cc1462658ec1de1149730e0ffb0425 (patch) | |
tree | 8dd59056b41c380ffb1cd24ef9adc14d21fd3794 /vnet/vnet/map/map.h | |
parent | d46cca174394794073585da4819eacc2bd72e862 (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.h | 2 |
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; |