/*
* This code supports MAP-T:
*
- * With DMR prefix length equal to 96.
+ * With a DMR prefix length of 64 or 96 (RFC6052).
*
*/
/* Sanity check on the src prefix length */
if (flags & MAP_DOMAIN_TRANSLATION)
{
- if (ip6_src_len != 96)
+ if (ip6_src_len != 96 && ip6_src_len != 64)
{
- clib_warning ("MAP-T only supports ip6_src_len = 96 for now.");
- return -1;
- }
- if ((flags & MAP_DOMAIN_RFC6052) && ip6_prefix_len != 96)
- {
- clib_warning ("RFC6052 translation only supports ip6_prefix_len = "
- "96 for now");
+ clib_warning ("MAP-T only supports prefix lengths of 64 and 96.");
return -1;
}
}
if (FIB_NODE_INDEX_INVALID != pr->fei)
{
- fib_prefix_t pfx;
+ const fib_prefix_t *pfx;
- fib_entry_get_prefix (pr->fei, &pfx);
+ pfx = fib_entry_get_prefix (pr->fei);
return (format (s, "%U (%u)",
- format_ip46_address, &pfx.fp_addr, IP46_TYPE_ANY,
+ format_ip46_address, &pfx->fp_addr, IP46_TYPE_ANY,
pr->dpo.dpoi_index));
}
else
ip6_prefix = d->ip6_prefix;
s = format (s,
- "[%d] ip4-pfx %U/%d ip6-pfx %U/%d ip6-src %U/%d ea_bits_len %d "
+ "[%d] ip4-pfx %U/%d ip6-pfx %U/%d ip6-src %U/%d ea-bits-len %d "
"psid-offset %d psid-len %d mtu %d %s",
d - mm->domains,
format_ip4_address, &d->ip4_prefix, d->ip4_prefix_len,
mm->frag_ignore_df = false;
vec_validate (mm->domain_counters, MAP_N_DOMAIN_COUNTER - 1);
- mm->domain_counters[MAP_DOMAIN_COUNTER_RX].name = "rx";
- mm->domain_counters[MAP_DOMAIN_COUNTER_TX].name = "tx";
+ mm->domain_counters[MAP_DOMAIN_COUNTER_RX].name = "/map/rx";
+ mm->domain_counters[MAP_DOMAIN_COUNTER_TX].name = "/map/tx";
vlib_validate_simple_counter (&mm->icmp_relayed, 0);
vlib_zero_simple_counter (&mm->icmp_relayed, 0);