summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/vnet/api_errno.h4
-rw-r--r--src/vnet/l2/l2_api.c20
2 files changed, 23 insertions, 1 deletions
diff --git a/src/vnet/api_errno.h b/src/vnet/api_errno.h
index 05a4a45cd1f..fdafb7e6b54 100644
--- a/src/vnet/api_errno.h
+++ b/src/vnet/api_errno.h
@@ -143,7 +143,9 @@ _(BIER_BSL_UNSUP, -146, "BIER bit-string-length unsupported") \
_(INSTANCE_IN_USE, -147, "Instance in use") \
_(INVALID_SESSION_ID, -148, "session ID out of range") \
_(ACL_IN_USE_BY_LOOKUP_CONTEXT, -149, "ACL in use by a lookup context") \
-_(INVALID_VALUE_3, -150, "Invalid value #3")
+_(INVALID_VALUE_3, -150, "Invalid value #3") \
+_(NON_ETHERNET, -151, "Interface is not an Ethernet interface") \
+_(BD_ALREADY_HAS_BVI, -152, "Bridge domain already has a BVI interface")
typedef enum
{
diff --git a/src/vnet/l2/l2_api.c b/src/vnet/l2/l2_api.c
index 3f27feb638a..eb04459f234 100644
--- a/src/vnet/l2/l2_api.c
+++ b/src/vnet/l2/l2_api.c
@@ -688,6 +688,16 @@ static void
L2_BD_PORT_TYPE_NORMAL, 0, 0);
}
+ switch (rv)
+ {
+ case MODE_ERROR_ETH:
+ rv = VNET_API_ERROR_NON_ETHERNET;
+ break;
+ case MODE_ERROR_BVI_DEF:
+ rv = VNET_API_ERROR_BD_ALREADY_HAS_BVI;
+ break;
+ }
+
BAD_RX_SW_IF_INDEX_LABEL;
BAD_TX_SW_IF_INDEX_LABEL;
@@ -746,6 +756,16 @@ static void
rv = set_int_l2_mode (vm, vnm, MODE_L3, rx_sw_if_index, 0, pt, 0, 0);
}
+ switch (rv)
+ {
+ case MODE_ERROR_ETH:
+ rv = VNET_API_ERROR_NON_ETHERNET;
+ break;
+ case MODE_ERROR_BVI_DEF:
+ rv = VNET_API_ERROR_BD_ALREADY_HAS_BVI;
+ break;
+ }
+
BAD_RX_SW_IF_INDEX_LABEL;
BAD_BD_ID_LABEL;
out: