|
4 | 4 |
|
5 | 5 | from ..schema import schema |
6 | 6 | from .base import OpenWrtConverter |
| 7 | +from ..schema import schema |
7 | 8 |
|
8 | 9 |
|
9 | 10 | class Interfaces(OpenWrtConverter): |
@@ -128,6 +129,11 @@ def __intermediate_interface(self, interface, uci_name): |
128 | 129 | def _intermediate_modem_manager(self, interface): |
129 | 130 | interface['proto'] = 'modemmanager' |
130 | 131 | interface['pincode'] = interface.pop('pin', None) |
| 132 | + |
| 133 | + def _intermediate_vxlan(self, interface): |
| 134 | + interface['proto'] = 'vxlan' |
| 135 | + interface['peeraddr'] = interface.pop('vtep') |
| 136 | + interface['vid'] = interface.pop('vni') |
131 | 137 | return interface |
132 | 138 |
|
133 | 139 | _address_keys = ['address', 'mask', 'family', 'gateway'] |
@@ -314,6 +320,15 @@ def _netjson_modem_manager(self, interface): |
314 | 320 |
|
315 | 321 | _netjson_modemmanager = _netjson_modem_manager |
316 | 322 |
|
| 323 | + _vxlan_schema = schema['definitions']['vxlan_interface']['allOf'][0] |
| 324 | + |
| 325 | + def _netjson_vxlan(self, interface): |
| 326 | + interface['type'] = interface.pop('proto', None) |
| 327 | + interface['vtep'] = interface.pop('peeraddr', None) |
| 328 | + interface['vni'] = interface.pop('vid', None) |
| 329 | + interface['port'] = interface['port'] |
| 330 | + return self.type_cast(interface, schema=self._vxlan_schema) |
| 331 | + |
317 | 332 | def __netjson_address(self, address, interface): |
318 | 333 | ip = ip_interface(address) |
319 | 334 | family = 'ipv{0}'.format(ip.version) |
|
0 commit comments