diff options
author | Jan Srnicek <jsrnicek@cisco.com> | 2016-09-08 09:46:46 +0200 |
---|---|---|
committer | Maros Marsalek <mmarsale@cisco.com> | 2016-09-12 09:51:06 +0000 |
commit | 9f09b75c5191e72b3b27644e09d2668c94a5ec49 (patch) | |
tree | d75728ef79a398263b7aed8c022672da44f530bd | |
parent | e2a60585bb88467888d6b87b42aa42453160f5be (diff) |
Fixed filtering by referenced interface for locators
Change-Id: I471e9b9f2d2ecb0f8e3b3e181118de42247ba7ec
Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
-rwxr-xr-x | lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/InterfaceCustomizer.java | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/InterfaceCustomizer.java b/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/InterfaceCustomizer.java index d12c730a2..cc8bbf5ab 100755 --- a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/InterfaceCustomizer.java +++ b/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/InterfaceCustomizer.java @@ -87,14 +87,22 @@ public class InterfaceCustomizer @Override public void readCurrentAttributes(InstanceIdentifier<Interface> id, InterfaceBuilder builder, ReadContext ctx) throws ReadFailedException { - checkState(id.firstKeyOf(LocatorSet.class) != null, "Cannot find reference to parent locator set"); - final String name = id.firstKeyOf(LocatorSet.class).getName(); - checkState(locatorSetContext.containsIndex(name, ctx.getMappingContext())); - final int interfaceIndex = locatorSetContext.getIndex(name, ctx.getMappingContext()); + final String locatorSetName = id.firstKeyOf(LocatorSet.class).getName(); + final String referencedInterfaceName = id.firstKeyOf(Interface.class).getInterfaceRef(); + + checkState(interfaceContext.containsIndex(referencedInterfaceName, ctx.getMappingContext()), + "No interface mapping for name %s", referencedInterfaceName); + checkState(locatorSetContext.containsIndex(locatorSetName, ctx.getMappingContext()), + "No locator set mapping for name %s", locatorSetName); + + final int locatorSetIndexIndex = locatorSetContext.getIndex(locatorSetName, ctx.getMappingContext()); + final int referencedInterfaceIndex = + interfaceContext.getIndex(referencedInterfaceName, ctx.getMappingContext()); + final LocatorDumpParams params = new LocatorDumpParams.LocatorDumpParamsBuilder() .setFilter(LocatorDumpParams.LocatorDumpFilter.LOCAL) - .setLocatorSetIndex(interfaceIndex) + .setLocatorSetIndex(locatorSetIndexIndex) .build(); Optional<LispLocatorDetailsReplyDump> reply; @@ -108,7 +116,7 @@ public class InterfaceCustomizer final LispLocatorDetails details = reply.get() .lispLocatorDetails .stream() - .filter(a -> a.swIfIndex == interfaceIndex) + .filter(a -> a.swIfIndex == referencedInterfaceIndex) .collect(RWUtils.singleItemCollector()); final String interfaceRef = interfaceContext.getName(details.swIfIndex, ctx.getMappingContext()); |