def get_bgp_config(self, group="<STR_LIT>", neighbor="<STR_LIT>"):
raise NotImplementedError<EOL>
Returns a dictionary containing the BGP configuration.
Can return either the whole config, either the config only for a group or neighbor.

:param group: Returns the configuration of a specific BGP group.
:param neighbor: Returns the configuration of a specific BGP neighbor.

Main dictionary keys represent the group name and the values represent a dictionary having
the keys below. Neighbors which aren't members of a group will be stored in a key named "_":

    * type (string)
    * description (string)
    * apply_groups (string list)
    * multihop_ttl (int)
    * multipath (True/False)
    * local_address (string)
    * local_as (int)
    * remote_as (int)
    * import_policy (string)
    * export_policy (string)
    * remove_private_as (True/False)
    * prefix_limit (dictionary)
    * neighbors (dictionary)

Neighbors is a dictionary of dictionaries with the following keys:

    * description (string)
    * import_policy (string)
    * export_policy (string)
    * local_address (string)
    * local_as (int)
    * remote_as (int)
    * authentication_key (string)
    * prefix_limit (dictionary)
    * route_reflector_client (True/False)
    * nhs (True/False)

The inner dictionary prefix_limit has the same structure for both layers::

    {
        [FAMILY_NAME]: {
            [FAMILY_TYPE]: {
                'limit': [LIMIT],
                ... other options
            }
        }
    }

Example::

    {
        'PEERS-GROUP-NAME':{
            'type'              : u'external',
            'description'       : u'Here we should have a nice description',
            'apply_groups'      : [u'BGP-PREFIX-LIMIT'],
            'import_policy'     : u'PUBLIC-PEER-IN',
            'export_policy'     : u'PUBLIC-PEER-OUT',
            'remove_private_as' : True,
            'multipath'         : True,
            'multihop_ttl'      : 30,
            'neighbors'         : {
                '192.168.0.1': {
                    'description'   : 'Facebook [CDN]',
                    'prefix_limit'  : {
                        'inet': {
                            'unicast': {
                                'limit': 100,
                                'teardown': {
                                    'threshold' : 95,
                                    'timeout'   : 5
                                }
                            }
                        }
                    }
                    'remote_as'             : 32934,
                    'route_reflector_client': False,
                    'nhs'                   : True
                },
                '172.17.17.1': {
                    'description'   : 'Twitter [CDN]',
                    'prefix_limit'  : {
                        'inet': {
                            'unicast': {
                                'limit': 500,
                                'no-validate': 'IMPORT-FLOW-ROUTES'
                            }
                        }
                    }
                    'remote_as'               : 13414
                    'route_reflector_client': False,
                    'nhs'                   : False
                }
            }
        }
    }