VPP uses byte in range of 0 to 255 but when jni is used
and this type is converted to java byte which has range
of -128 to 127 it will convert it to negative value.
It then fails to create Ip6Prefix from this value.
Change-Id: Ic18686959682c153da2e4ee4a7f7841c9b56e5d3
Signed-off-by: Michal Cmarada <[email protected]>
public String uniqueRouteName(@Nonnull final Ip6FibDetails details, @Nonnull final MappingContext mappingContext) {
return bindName(routingProtocolContext.getName(details.tableId, mappingContext),
doubleDotlessAddress(details.address),
- String.valueOf(details.addressLength));
+ String.valueOf(Byte.toUnsignedInt(details.addressLength)));
}
public String uniqueRouteHopName(
checkArgument(
allowedPrefixPatterns.stream().anyMatch(pattern -> Pattern.compile(pattern).matcher(value).matches()),
"%s is not a valid Ip-prefix value");
- return Byte.valueOf(value.substring(value.indexOf("/") + 1));
+ return Integer.valueOf(value.substring(value.indexOf("/") + 1)).byteValue();
}
default boolean classifyTablePresent(final String classifyTableName,
default byte extractPrefix(Ipv6Prefix data) {
checkNotNull(data, "Cannot extract from null");
- return Byte.valueOf(data.getValue().substring(data.getValue().indexOf('/') + 1));
+ return Integer.valueOf(data.getValue().substring(data.getValue().indexOf('/') + 1)).byteValue();
}
/**