Version 1

The REST API lives at the /v1 endpoint and responsds to GET, POST, PUT, and DELETE.

Root

Used to check the API status, if it can work.

Example request:

GET /v1

Example response:

It will return the status of this version of API.

{
  "status": "stable",
  "updated": "2015-01-22T00:00:00Z",
  "version": "v1"
}

Peer’s Information

Try to get peer’s configuration and running information.

One Peers

Get one peer’s configuration and running information.

GET /v1/peer/<peer_ip_address>/state

Example response:

{
    "peer": {
        "fsm": "ESTABLISHED",
        "local_addr": "10.75.44.11",
        "local_as": 23650,
        "remote_addr": "10.124.1.245",
        "remote_as": 23650,
        "uptime": 7.913731813430786
    }
}

Get send/recieve version

Get peer’s send/recieve version .

GET /v1/peer/<peer_ip_address>/version/<action>
action : send, received

Example response:

{
    "version": {
        "flowspec": 0,
        "ipv4": 0,
        "mpls_vpn": 0,
        "sr_policy": 0
    }
}

Message Statistic

Get the BGP message sending and receiving number statistic.

GET /v1/peer/<peer_ip_address>/statistic

Example response:

{
    "receive": {
        "Keepalives": 3,
        "Notifications": 0,
        "Opens": 1,
        "Route Refresh": 0,
        "Updates": 5
    },
    "send": {
        "Keepalives": 3,
        "Notifications": 0,
        "Opens": 1,
        "Route Refresh": 0,
        "Updates": 0
    }
}

Send Message

Route Refresh

Send BGP route refresh message to peer.

afi safi Description
1 1 IPv4 unicast
1 128 IPv4 MPLS VPN
2 1 IPv6 unicast
2 128 IPv6 MPLS VPN
POST /v1/peer/<peer_ip_address>/send/route-refresh

POST data format

{
    "afi": 1,
    "safi": 1,
    "res": 0
}

Example response:

{
    "status": true
}

Update

Send BGP update message to peer

POST /v1/peer/<peer_ip_address>/send/update

POST data format for update

{
    "attr":{
        "1": 0,
        "2": [],
        "3": "192.0.2.1",
        "5": 100,
        "8": ["NO_EXPORT"]
},
    "nlri": ["172.20.1.0/24", "172.20.2.0/24"]
}

POST data format for withdraw

{
    "withdraw": ["172.20.1.0/24", "172.20.2.0/24"]
}

Example response:

{
    "status": true
}

Manual start and stop

manual start

Try to manual start BGP session
GET /v1/peer/<peer_ip_address>/manual-start

Example response:

{
    "status": true
}

manual stop

Try to manual start BGP session
GET /v1/peer/<peer_ip_address>/manual-stop

Example response:

{
    "status": true
}