Configure Layer3 vni under vrf.
        Args:
            rbridge_id (str): rbridge-id for device.
            vrf_name (str): Name of the vrf (vrf101, vrf-1 etc).
            l3vni (str): <NUMBER:1-16777215>   Layer 3 VNI.
            get (bool): Get config instead of editing config. (True, False)
            delete (bool): False the L3 vni is configured and True if its to
                be deleted (True, False). Default value will be False if not
                specified.
            callback (function): A function executed upon completion of the
                method.  The only parameter passed to `callback` will be the
                ``ElementTree`` `config`.
        Returns:
            Return value of `callback`.
        Raises:
            KeyError: if `rbridge_id`,`vrf_name`, 'l3vni' is not passed.
            ValueError: if `rbridge_id`, `vrf_name`, 'l3vni'  is invalid.
        Examples:
            >>> import pynos.device
            >>> switches = ['10.24.39.211', '10.24.39.203']
            >>> auth = ('admin', 'password')
            >>> for switch in switches:
            ...     conn = (switch, '22')
            ...     with pynos.device.Device(conn=conn, auth=auth) as dev:
            ...         output = dev.interface.vrf_vni(
            ...         vrf_name=vrf1, rbridge_id='2', l3vni ='7201')
            ...         output = dev.interface.vrf_vni(rbridge_id='2',
            ...         get=True)
            ...         output = dev.interface.vrf_vni(rbridge_id='2',
            ...         , vrf_name='vrf2' get=True)
            ...         output = dev.interface.vrf_vni(vrf_name=vrf1,
            ...         rbridge_id='2', l3vni ='7201', delete=True)

def vrf_l3vni(self, **kwargs):
        """Configure Layer3 vni under vrf.
        Args:
            rbridge_id (str): rbridge-id for device.
            vrf_name (str): Name of the vrf (vrf101, vrf-1 etc).
            l3vni (str): <NUMBER:1-16777215>   Layer 3 VNI.
            get (bool): Get config instead of editing config. (True, False)
            delete (bool): False the L3 vni is configured and True if its to
                be deleted (True, False). Default value will be False if not
                specified.
            callback (function): A function executed upon completion of the
                method.  The only parameter passed to `callback` will be the
                ``ElementTree`` `config`.
        Returns:
            Return value of `callback`.
        Raises:
            KeyError: if `rbridge_id`,`vrf_name`, 'l3vni' is not passed.
            ValueError: if `rbridge_id`, `vrf_name`, 'l3vni'  is invalid.
        Examples:
            >>> import pynos.device
            >>> switches = ['10.24.39.211', '10.24.39.203']
            >>> auth = ('admin', 'password')
            >>> for switch in switches:
            ...     conn = (switch, '22')
            ...     with pynos.device.Device(conn=conn, auth=auth) as dev:
            ...         output = dev.interface.vrf_vni(
            ...         vrf_name=vrf1, rbridge_id='2', l3vni ='7201')
            ...         output = dev.interface.vrf_vni(rbridge_id='2',
            ...         get=True)
            ...         output = dev.interface.vrf_vni(rbridge_id='2',
            ...         , vrf_name='vrf2' get=True)
            ...         output = dev.interface.vrf_vni(vrf_name=vrf1,
            ...         rbridge_id='2', l3vni ='7201', delete=True)

        """
        rbridge_id = kwargs['rbridge_id']
        get_config = kwargs.pop('get', False)
        delete = kwargs.pop('delete', False)
        callback = kwargs.pop('callback', self._callback)
        result = []

        method_class = self._rbridge
        method_name = 'rbridge_id_vrf_vni'
        vrf_vni = getattr(method_class, method_name)

        if not get_config:
            vrf_name = kwargs['vrf_name']
            l3vni = kwargs['l3vni']
            vni_args = dict(rbridge_id=rbridge_id, vrf_name=vrf_name,
                            vni=l3vni)
            config = vrf_vni(**vni_args)

            if delete:
                config.find('.//*vni').set('operation', 'delete')
            result = callback(config)

        elif get_config:
            vrf_name = kwargs.pop('vrf_name', '')
            vni_args = dict(rbridge_id=rbridge_id, vrf_name=vrf_name,
                            vni='')
            config = vrf_vni(**vni_args)
            output = callback(config, handler='get_config')
            for item in output.data.findall('.//{*}vrf'):
                vrfname = item.find('.//{*}vrf-name').text
                if item.find('.//{*}vni') is not None:
                    vrfvni = item.find('.//{*}vni').text
                else:
                    vrfvni = ''

                tmp = {'rbridge_id': rbridge_id, 'vrf_name': vrfname,
                       'l3vni': vrfvni}
                result.append(tmp)
        return result