Create default address family (ipv4/ipv6) under router bgp.

        Args:
            afi (str): Address family to configure. (ipv4, ipv6)
            rbridge_id (str): The rbridge ID of the device on which BGP will be
                              configured in a VCS fabric.
            delete (bool): Deletes the redistribute connected under default vrf
                if `delete` is ``True``.
            get (bool): Get config instead of editing config. (True, False)
            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 `afi' is not expected
            AttributeError: if 'afi' is not in ipv4,ipv6.

        Examples:
            >>> import pynos.device
            >>> conn = ('10.24.39.211', '22')
            >>> auth = ('admin', 'password')
            >>> with pynos.device.Device(conn=conn, auth=auth) as dev:
            ...     device.bgp.default_vrf_unicast_address_family(delete=True,
            ...     rbridge_id='4')
            ...     device.bgp.default_vrf_unicast_address_family(get=True,
            ...     rbridge_id='4')
            ...     device.bgp.default_vrf_unicast_address_family(
            ...     rbridge_id='4', afi='ipv6')

def default_vrf_unicast_address_family(self, **kwargs):
        """Create default address family (ipv4/ipv6) under router bgp.

        Args:
            afi (str): Address family to configure. (ipv4, ipv6)
            rbridge_id (str): The rbridge ID of the device on which BGP will be
                              configured in a VCS fabric.
            delete (bool): Deletes the redistribute connected under default vrf
                if `delete` is ``True``.
            get (bool): Get config instead of editing config. (True, False)
            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 `afi' is not expected
            AttributeError: if 'afi' is not in ipv4,ipv6.

        Examples:
            >>> import pynos.device
            >>> conn = ('10.24.39.211', '22')
            >>> auth = ('admin', 'password')
            >>> with pynos.device.Device(conn=conn, auth=auth) as dev:
            ...     device.bgp.default_vrf_unicast_address_family(delete=True,
            ...     rbridge_id='4')
            ...     device.bgp.default_vrf_unicast_address_family(get=True,
            ...     rbridge_id='4')
            ...     device.bgp.default_vrf_unicast_address_family(
            ...     rbridge_id='4', afi='ipv6')
        """
        afi = kwargs.pop('afi', 'ipv4')
        rbridge_id = kwargs.pop('rbridge_id', '1')
        delete = kwargs.pop('delete', False)
        callback = kwargs.pop('callback', self._callback)
        if afi not in ['ipv4', 'ipv6']:
            raise AttributeError('Invalid AFI.')

        addr_family = getattr(self._rbridge,
                              'rbridge_id_router_router_bgp_address_family'
                              '_{0}_{0}_unicast_default_vrf_default_vrf_'
                              'selected'.format(afi))
        neighbor_args = dict(rbridge_id=rbridge_id)

        config = addr_family(**neighbor_args)

        result = False
        if kwargs.pop('get', False):
            output = callback(config, handler='get_config')
            if output.data.findall('.//{*}default-vrf-selected') != []:
                result = True
        elif delete:
            config.find('.//*af-vrf').set('operation', 'delete')
            result = callback(config)
        else:
            result = callback(config)
        return result