def get_bgp_neighbors(self):
raise NotImplementedError<EOL>
Returns a dictionary of dictionaries. The keys for the first dictionary will be the vrf
(global if no vrf). The inner dictionary will contain the following data for each vrf:

  * router_id
  * peers - another dictionary of dictionaries. Outer keys are the IPs of the neighbors. \
    The inner keys are:
     * local_as (int)
     * remote_as (int)
     * remote_id - peer router id
     * is_up (True/False)
     * is_enabled (True/False)
     * description (string)
     * uptime (int in seconds)
     * address_family (dictionary) - A dictionary of address families available for the \
       neighbor. So far it can be 'ipv4' or 'ipv6'
        * received_prefixes (int)
        * accepted_prefixes (int)
        * sent_prefixes (int)

    Note, if is_up is False and uptime has a positive value then this indicates the
    uptime of the last active BGP session.

    Example::

        {
          "global": {
            "router_id": "10.0.1.1",
            "peers": {
              "10.0.0.2": {
                "local_as": 65000,
                "remote_as": 65000,
                "remote_id": "10.0.1.2",
                "is_up": True,
                "is_enabled": True,
                "description": "internal-2",
                "uptime": 4838400,
                "address_family": {
                  "ipv4": {
                    "sent_prefixes": 637213,
                    "accepted_prefixes": 3142,
                    "received_prefixes": 3142
                  },
                  "ipv6": {
                    "sent_prefixes": 36714,
                    "accepted_prefixes": 148,
                    "received_prefixes": 148
                  }
                }
              }
            }
          }
        }