When adding new interface to vpp, it is inserted with an additional "ethernet" type. This doesn't pose immediate issue since this second type gets added after the correct one and therefore is ignored by operations such as delete and write. However restarting honeycomb brings this problem forth since loading honeycomb configuration from json changes the order of these types and the "ethernet" gets before the correct type - therefore gets processed first. Trying to delete such interface results in exception since interfaces with type "ethernet" can't be deleted.
Example:
Starting fresh VPP and honeycomb. Adding a single tap interface. Operational data:
{
"interfaces-state": {
"interface": [
,
{
"name": "tapp",
"type": "v3po:tap",
"if-index": 2,
"speed": 1000000000,
"v3po:tap":
,
"v3po:ethernet":
,
"phys-address": "02:fe:98:c8:8c:3e",
"admin-status": "up",
"oper-status": "up"
}
]
}
}
Restarting honeycomb and listing the operational data again:
{
"interfaces-state": {
"interface": [
,
{
"name": "tapp",
"type": "v3po:tap",
"if-index": 2,
"speed": 1000000000,
"v3po:ethernet":
,
"v3po:tap":
,
"phys-address": "02:fe:98:c8:8c:3e",
"admin-status": "up",
"oper-status": "up"
}
]
}
}
The "v3po:ethernet" switched places with "v3po:tap" and therefore this interface cannot be deleted anymore.