diff options
author | Marek Gradzki <mgradzki@cisco.com> | 2018-04-20 07:02:03 +0200 |
---|---|---|
committer | Marek Gradzki <mgradzki@cisco.com> | 2018-04-20 08:12:16 +0200 |
commit | 4b1fcde5c085c8704a1c3274029e35d1e72625c8 (patch) | |
tree | 3df64e80db09761d7d56547bfe95870f8af4594f | |
parent | 48566d84cd9f4047d96541540cdfc9ef4936acf8 (diff) |
Forbid delete of default NAT instance
NAT instances are mapped to VPP's VRFs.
Default NAT instance (id=0) is mapped to default VRF,
which is allways present in VPP.
This patch forbids deleteion of default instance
to be consistent with VPP behaviour
and NAT instance reader implementation.
Change-Id: I71aa6986395e4ba67baaa75d90905b450434aca4
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
-rw-r--r-- | nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/write/NatInstaceCustomizer.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/write/NatInstaceCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/write/NatInstaceCustomizer.java index fa5cfa8e2..8e5673003 100644 --- a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/write/NatInstaceCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/write/NatInstaceCustomizer.java @@ -42,5 +42,12 @@ final class NatInstaceCustomizer implements ListWriterCustomizer<NatInstance, Na @Nonnull final NatInstance dataBefore, @Nonnull final WriteContext writeContext) throws WriteFailedException { LOG.trace("Deleting nat-instance: {}", id); + + // For consistency with reader, forbid removing default NAT instance: + final Long vrfId = id.firstKeyOf(NatInstance.class).getId(); + if (vrfId == 0) { + throw new WriteFailedException.DeleteFailedException(id, + new UnsupportedOperationException("Removing default NAT instance (vrf=0) is not supported.")); + } } } |