summaryrefslogtreecommitdiffstats
path: root/v3po/v3po2vpp/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'v3po/v3po2vpp/src/main')
-rw-r--r--v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/InterfaceCustomizer.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/InterfaceCustomizer.java b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/InterfaceCustomizer.java
index be50aa6b7..2f155bb87 100644
--- a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/InterfaceCustomizer.java
+++ b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/InterfaceCustomizer.java
@@ -40,6 +40,8 @@ public class InterfaceCustomizer extends FutureJVppCustomizer
implements ListWriterCustomizer<Interface, InterfaceKey>, JvppReplyConsumer {
private static final Logger LOG = LoggerFactory.getLogger(InterfaceCustomizer.class);
+ private static final String LOCAL0_NAME = "local0";
+
private final NamingContext interfaceContext;
public InterfaceCustomizer(final FutureJVppCore vppApi, final NamingContext interfaceContext) {
@@ -68,8 +70,14 @@ public class InterfaceCustomizer extends FutureJVppCustomizer
@Override
public void deleteCurrentAttributes(@Nonnull final InstanceIdentifier<Interface> id,
@Nonnull final Interface dataBefore,
- @Nonnull final WriteContext writeContext) {
- // Nothing to be done here, customizers for specific interface types e.g. vxlan handle the delete
+ @Nonnull final WriteContext writeContext)
+ throws WriteFailedException.DeleteFailedException {
+ // Special handling for local0 interface (HC2VPP-308):
+ if (LOCAL0_NAME.equals(dataBefore.getName())) {
+ throw new WriteFailedException.DeleteFailedException(id,
+ new UnsupportedOperationException("Removing " + LOCAL0_NAME + " interface is not supported"));
+ }
+ // For other interfaces, delegate delete to customizers for specific interface types (e.g. VXLan, Tap).
}
private void setInterface(final InstanceIdentifier<Interface> id, final Interface swIf,