Commit 1ab335d4 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Device component - gNMI OpenConfig Driver:

- Fixed management of MTUs
parent bb0cd358
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ from .YangHandler import YangHandler

LOGGER = logging.getLogger(__name__)

MIN_MTU = 68

class InterfaceHandler(_Handler):
    def get_resource_key(self) -> str: return '/interface/subinterface'
    def get_path(self) -> str: return '/openconfig-interfaces:interfaces'
@@ -76,7 +78,9 @@ class InterfaceHandler(_Handler):
        yang_if : libyang.DContainer = yang_ifs.create_path(yang_if_path)
        yang_if.create_path('config/name',    if_name   )
        if enabled is not None: yang_if.create_path('config/enabled', enabled)
        if mtu     is not None: yang_if.create_path('config/mtu',     mtu)
        
        if mtu is not None and mtu >= MIN_MTU:
            yang_if.create_path('config/mtu', mtu)

        if sif_index is None:
            str_path = '/interfaces/interface[name={:s}]'.format(if_name)
@@ -142,7 +146,6 @@ class InterfaceHandler(_Handler):
            _interface = {
                'name'         : interface_name,
                'type'         : interface_type,
                'mtu'          : interface_state['mtu'],
                'admin-status' : interface_state['admin-status'],
                'oper-status'  : interface_state['oper-status'],
                'management'   : interface_state['management'],
@@ -157,6 +160,9 @@ class InterfaceHandler(_Handler):
                _interface['hardware-port'] = interface_state['hardware-port']
            if 'transceiver' in interface_state:
                _interface['transceiver'] = interface_state['transceiver']
            if 'mtu' in interface_state:
                mtu = interface_state['mtu']
                if mtu > 0: _interface['mtu'] = mtu

            entry_interface_key = '/interface[{:s}]'.format(interface_name)
            entries.append((entry_interface_key, _interface))
@@ -185,6 +191,12 @@ class InterfaceHandler(_Handler):
                    _subinterface['name'] = subinterface_state['name']
                if 'enabled' in subinterface_state:
                    _subinterface['enabled'] = subinterface_state['enabled']
                if 'mtu' in subinterface_state:
                    mtu = subinterface_state['mtu']
                    if mtu > 0:
                        _subinterface['mtu'] = mtu
                        if 'mtu' not in _interface:
                            _interface['mtu'] = mtu

                if 'vlan' in subinterface:
                    vlan = subinterface['vlan']