VPP Agent#


This section describes the REST APIs exposed by the VPP agent.


Note

REST supports the retrieval of the existing configuration for VPP and Linux plugins. You cannot use REST APIs to add, modify, or delete configuration data. Use agentctl to perform those tasks.

Note that Ligato REST APIs use 9191 as the default port number. You can change this value using one of the REST plugin configuration options.


OpenAPI#

OpenAPI (swagger) definitions provide additional details for describing, producing and consuming VPP agent REST APIs.


Index#

VPP Interfaces


ACL/ABF


L2


L3


NAT


VPP IPsec


VPP Punt Socket


VPP Telemetry


VPP Agent Version


VPP CLI


Linux


Configurator


RESTAPI Plugin#

Description: Returns an html-formatted index of REST APIs defined in the restapi plugin urls.go. This file contains the VPP and Linux APIs documented above.

curl -X GET http://localhost:9191/

VPP Interfaces#

Description: GET all interfaces.

curl -X GET http://localhost:9191/dump/vpp/v2/interfaces

Sample response:

{
    "0": {
        "interface": {
            "name": "UNTAGGED-local0",
            "type": "SOFTWARE_LOOPBACK"
        },
        "interface_meta": {
            "sw_if_index": 0,
            "sub_sw_if_index": 0,
            "l2_address": "",
            "internal_name": "local0",
            "is_admin_state_up": false,
            "is_link_state_up": false,
            "link_duplex": 0,
            "link_mtu": 0,
            "mtu": [
                0,
                0,
                0,
                0
            ],
            "link_speed": 0,
            "sub_id": 0,
            "tag": "",
            "dhcp": null,
            "vrf_ipv4": 0,
            "vrf_ipv6": 0,
            "pci": 0
        }
    },
    "1": {
        "interface": {
            "name": "GigabitEthernet0/8/0",
            "type": "DPDK",
            "enabled": true,
            "physAddress": "08:00:27:e9:b9:9b",
            "ipAddresses": [
                "192.168.16.1/24"
            ],
            "mtu": 9206,
            "rxModes": [
                {
                    "mode": "POLLING"
                }
            ],
            "rxPlacements": [
                {
                    "mainThread": true
                }
            ]
        },
        "interface_meta": {
            "sw_if_index": 1,
            "sub_sw_if_index": 1,
            "l2_address": "CAAn6bmb",
            "internal_name": "GigabitEthernet0/8/0",
            "is_admin_state_up": true,
            "is_link_state_up": true,
            "link_duplex": 2,
            "link_mtu": 9206,
            "mtu": [
                9000,
                0,
                0,
                0
            ],
            "link_speed": 1000000,
            "sub_id": 0,
            "tag": "",
            "dhcp": null,
            "vrf_ipv4": 0,
            "vrf_ipv6": 0,
            "pci": 0
        }
    },
// additional interfaces
...

VPP Interfaces/Loopback#

Description: GET loopback interfaces.

curl http://localhost:9191/dump/vpp/v2/interfaces/loopback

Sample response:

{
    "0": {
        "interface": {
            "name": "UNTAGGED-local0",
            "type": "SOFTWARE_LOOPBACK",
            "physAddress": "00:00:00:00:00:00"
        },
        "interface_meta": {
            "sw_if_index": 0,
            "sub_sw_if_index": 0,
            "l2_address": "AAAAAAAA",
            "internal_name": "local0",
            "is_admin_state_up": false,
            "is_link_state_up": false,
            "link_duplex": 0,
            "link_mtu": 0,
            "mtu": [
                0,
                0,
                0,
                0
            ],
            "link_speed": 0,
            "sub_id": 0,
            "tag": "",
            "dhcp": null,
            "vrf_ipv4": 0,
            "vrf_ipv6": 0,
            "pci": 0
        }
    },
// additional loopbacks
...

VPP Interfaces/Ethernet#

Description: GET ethernet interfaces.

curl -X GET http://localhost:9191/dump/vpp/v2/interfaces/ethernet

Sample response:

{
  "1": {
    "interface": {
      "name": "GigabitEthernet0/8/0",
      "type": "DPDK",
      "enabled": true,
      "physAddress": "08:00:27:da:0d:6b",
      "ipAddresses": [
        "192.168.16.1/24"
      ],
      "mtu": 9206,
      "rxModes": [
        {
          "mode": "POLLING"
        }
      ],
      "rxPlacements": [
        {
          "mainThread": true
        }
      ]
    },
    "interface_meta": {
      "sw_if_index": 1,
      "sub_sw_if_index": 1,
      "l2_address": "CAAn2g1r",
      "internal_name": "GigabitEthernet0/8/0",
      "is_admin_state_up": true,
      "is_link_state_up": true,
      "link_duplex": 2,
      "link_mtu": 9206,
      "mtu": [
        9000,
        0,
        0,
        0
      ],
      "link_speed": 1000000,
      "sub_id": 0,
      "tag": "",
      "dhcp": null,
      "vrf_ipv4": 0,
      "vrf_ipv6": 0,
      "pci": 0
    }
  }
}
// additional ethernet interfaces
...

VPP Interfaces/Vxlan#

Description: GET vxlan interfaces.

curl -X GET http://localhost:9191/dump/vpp/v2/interfaces/vxlan

Sample response:

{
    "8": {
        "interface": {
            "name": "vxlan-default-2",
            "type": "VXLAN_TUNNEL",
            "enabled": true,
            "vxlan": {
                "srcAddress": "192.168.16.1",
                "dstAddress": "192.168.16.2",
                "vni": 10
            }
        },
        "interface_meta": {
            "sw_if_index": 8,
            "sub_sw_if_index": 8,
            "l2_address": "",
            "internal_name": "vxlan_tunnel0",
            "is_admin_state_up": true,
            "is_link_state_up": true,
            "link_duplex": 0,
            "link_mtu": 0,
            "mtu": [
                0,
                0,
                0,
                0
            ],
            "link_speed": 0,
            "sub_id": 0,
            "tag": "vxlan-default-2",
            "dhcp": null,
            "vrf_ipv4": 0,
            "vrf_ipv6": 0,
            "pci": 0
        }
    }
}
// other vxlan interfaces
...

VPP Interfaces/Tap#

Description: GET tap interfaces.

curl -X GET http://localhost:9191/dump/vpp/v2/interfaces/tap

Sample response:

{
  "3": {
    "interface": {
      "name": "tap-vpp2",
      "type": "TAP",
      "enabled": true,
      "physAddress": "34:3c:00:00:00:01",
      "ipAddresses": [
        "172.30.1.1/24"
      ],
      "mtu": 1450,
      "rxModes": [
        {
          "mode": "POLLING"
        }
      ],
      "rxPlacements": [
        {
          "mainThread": true
        }
      ],
      "tap": {
        "version": 2,
        "hostIfName": "tap-1755813745",
        "rxRingSize": 1024,
        "txRingSize": 1024
      }
    },
    "interface_meta": {
      "sw_if_index": 3,
      "sub_sw_if_index": 3,
      "l2_address": "NDwAAAAB",
      "internal_name": "tap0",
      "is_admin_state_up": true,
      "is_link_state_up": true,
      "link_duplex": 0,
      "link_mtu": 1450,
      "mtu": [
        1450,
        0,
        0,
        0
      ],
      "link_speed": 0,
      "sub_id": 0,
      "tag": "tap-vpp2",
      "dhcp": null,
      "vrf_ipv4": 0,
      "vrf_ipv6": 0,
      "pci": 0
    }
  },
// additional tap interfaces
...

VPP Interfaces/Memif#

Description: GET memif interfaces.

http://localhost:9191/dump/vpp/v2/interfaces/memif

Sample response:

{
"2": {
    "interface": {
        "name": "mem01",
        "type": "MEMIF",
        "enabled": true,
        "physAddress": "02:00:00:00:00:03",
        "ipAddresses": [
            "100.100.100.102/24"
        ],
        "mtu": 1500,
        "memif": {
            "id": 2,
            "socketFilename": "/run/vpp/memif.sock",
            "ringSize": 1
        }
    },
    "interface_meta": {
        "sw_if_index": 2,
        "sub_sw_if_index": 2,
        "l2_address": "AgAAAAAD",
        "internal_name": "memif0/2",
        "is_admin_state_up": true,
        "is_link_state_up": false,
        "link_duplex": 0,
        "link_mtu": 1500,
        "mtu": [
            1500,
            0,
            0,
            0
        ],
        "link_speed": 0,
        "sub_id": 0,
        "tag": "mem01",
        "dhcp": null,
        "vrf_ipv4": 0,
        "vrf_ipv6": 0,
        "pci": 0
    },
}
// additional memif interfaces
...

VPP Interfaces/Afpacket#

Description: GET afpacket interfaces.

curl -X GET http://localhost:9191/dump/vpp/v2/interfaces/afpacket

VPP ACL IP#

Description: GET IP ACL entries.

curl -X GET http://localhost:9191/dump/vpp/v2/acl/ip

Sample response:

[
    {
        "acl": {
            "name": "acl1",
            "rules": [
                {
                    "action": 1,
                    "ip_rule": {
                        "ip": {
                            "destination_network": "10.20.1.0/24",
                            "source_network": "192.168.1.2/32"
                        },
                        "tcp": {
                            "destination_port_range": {
                                "lower_port": 1150,
                                "upper_port": 1250
                            },
                            "source_port_range": {
                                "lower_port": 150,
                                "upper_port": 250
                            },
                            "tcp_flags_mask": 20,
                            "tcp_flags_value": 10
                        }
                    }
                }
            ],
            "interfaces": {}
        },
        "acl_meta": {
            "acl_index": 0,
            "acl_tag": "acl1"
        }
    }
]

VPP ACL MACIP#

Description: GET MACIP ACL entries.

curl -X GET http://localhost:9191/dump/vpp/v2/acl/macip

VPP ABF#

Description: GET ABF entries.

curl -X GET http://localhost:9191/dump/vpp/v2/abf

VPP L2 Bridge Domain#

Description: GET bridge domain information.

curl -X GET http://localhost:9191/dump/vpp/v2/bd

Sample response:

[
    {
        "bridge_domain": {
            "name": "vxlanBD",
            "forward": true,
            "interfaces": [
                {
                    "name": "vxlanBVI",
                    "bridged_virtual_interface": true,
                    "split_horizon_group": 1
                },
                {
                    "name": "vxlan-default-2",
                    "split_horizon_group": 1
                }
            ]
        },
        "bridge_domain_meta": {
            "bridge_domain_id": 1
        }
    }
]

VPP L2 FIB#

Description: GET L2 FIB information.

curl -X GET http://localhost:9191/dump/vpp/v2/fib

Sample response:

{
    "12:2b:00:00:00:01": {
        "fib": {
            "phys_address": "12:2b:00:00:00:01",
            "bridge_domain": "vxlanBD",
            "outgoing_interface": "vxlanBVI",
            "static_config": true,
            "bridged_virtual_interface": true
        },
        "fib_meta": {
            "bridge_domain_id": 1,
            "outgoing_interface_sw_if_idx": 4
        }
    },
    "12:2b:00:00:00:02": {
        "fib": {
            "phys_address": "12:2b:00:00:00:02",
            "bridge_domain": "vxlanBD",
            "outgoing_interface": "vxlan-default-2",
            "static_config": true
        },
        "fib_meta": {
            "bridge_domain_id": 1,
            "outgoing_interface_sw_if_idx": 8
        }
    }
}

VPP L2 X-connect#

Description: GET L2 x-connect information.

curl -X GET http://localhost:9191/dump/vpp/v2/xc

VPP L3 Routes#

Description: GET L3 routing table entries.

curl -X GET http://localhost:9191/dump/vpp/v2/routes

Sample response:

[
  {
    "Route": {
      "dst_network": "0.0.0.0/0",
      "next_hop_addr": "192.168.16.100",
      "outgoing_interface": "GigabitEthernet0/8/0",
      "weight": 1
    },
    "Meta": {
      "TableName": "",
      "OutgoingIfIdx": 1,
      "IsIPv6": false,
      "Afi": 0,
      "IsLocal": false,
      "IsUDPEncap": false,
      "IsUnreach": false,
      "IsProhibit": false,
      "IsResolveHost": false,
      "IsResolveAttached": false,
      "IsDvr": false,
      "IsSourceLookup": false,
      "NextHopID": 0,
      "RpfID": 0,
      "LabelStack": []
    }
  },
  {
    "Route": {
      "type": 2,
      "dst_network": "240.0.0.0/4",
      "next_hop_addr": "0.0.0.0",
      "weight": 1
    },
    "Meta": {
      "TableName": "",
      "OutgoingIfIdx": 4294967295,
      "IsIPv6": false,
      "Afi": 0,
      "IsLocal": false,
      "IsUDPEncap": false,
      "IsUnreach": false,
      "IsProhibit": false,
      "IsResolveHost": false,
      "IsResolveAttached": false,
      "IsDvr": false,
      "IsSourceLookup": false,
      "NextHopID": 0,
      "RpfID": 0,
      "LabelStack": []
    },
// additional routes    
...

VPP L3 ARPs#

Description: GET ARP entries.

curl -X GET http://localhost:9191/dump/vpp/v2/arps

Sample response:

[
    {
        "Arp": {
            "interface": "GigabitEthernet0/8/0",
            "ip_address": "192.168.16.100",
            "phys_address": "08:00:27:c9:c3:7a"
        },
        "Meta": {
            "SwIfIndex": 1
        }
    },
    {
        "Arp": {
            "interface": "vxlanBVI",
            "ip_address": "192.168.30.2",
            "phys_address": "12:2b:00:00:00:02",
            "static": true
        },
        "Meta": {
            "SwIfIndex": 4
        }
    },
    {
        "Arp": {
            "interface": "tap-vpp2",
            "ip_address": "172.30.1.2",
            "phys_address": "96:55:cc:5b:35:6b"
        },
        "Meta": {
            "SwIfIndex": 3
        }
    },
    {
        "Arp": {
            "interface": "vpp-tap-054072f2c3954ab93b479d36b391f264f0096b1c1d374a4afb45ef4",
            "ip_address": "10.1.1.2",
            "phys_address": "02:fe:e3:99:d0:4c",
            "static": true
        },
        "Meta": {
            "SwIfIndex": 5
        }
    },
    {
        "Arp": {
            "interface": "vpp-tap-400dc32e50d03aeff4718c568bf5520cdc0addc1196f3c9d58dc1ec",
            "ip_address": "10.1.1.3",
            "phys_address": "02:fe:d4:0d:5f:64",
            "static": true
        },
        "Meta": {
            "SwIfIndex": 6
        }
    },
    {
        "Arp": {
            "interface": "vpp-tap-83dc59e9763c663bc2693ae1bd50a4982a536ccac3034518ea9e6a2",
            "ip_address": "10.1.1.4",
            "phys_address": "02:fe:a2:51:a7:65",
            "static": true
        },
        "Meta": {
            "SwIfIndex": 7
        }
    }
]
// additional ARP entries
...

VPP L3 IP Scan Neighbor#

Description: GET L3 IP scan neighbor data.

curl -X GET http://localhost:9191/dump/vpp/v2/ipscanneigh

Sampe response:

{
  "mode": 1,
  "scan_interval": 1,
  "max_proc_time": 20,
  "max_update": 10,
  "scan_int_delay": 1,
  "stale_threshold": 4
}

VPP L3 Proxy ARP Interfaces#

Description: GET proxy ARP interface information.

curl -X GET http://localhost:9191/dump/vpp/v2/proxyarp/interfaces

VPP L3 Proxy ARP Ranges#

Description: GET proxy ARP range information.

curl -X GET http://localhost:9191/dump/vpp/v2/proxyarp/ranges

VPP L3 VRRP#

Description: GET VRRP

curl -X GET http://localhost:9191/dump/vpp/v2/vrrps

VPP NAT Global#

Description: GET NAT global configuration information.

curl -X GET http://localhost:9191/dump/vpp/v2/nat/global

Sample response:

{
  "forwarding": true,
  "virtual_reassembly": {
    "timeout": 2,
    "max_reassemblies": 1024,
    "max_fragments": 5
  }
}

VPP NAT DNAT#

Description: GET destination-based NAT entries.

curl -X GET http://localhost:9191/dump/vpp/v2/nat/dnat

Sample response:

[
  {
    "label": "DNAT-identities",
    "id_mappings": [
      {
        "ip_address": "192.168.16.1",
        "port": 4789,
        "protocol": 1
      },
      {
        "vrf_id": 1,
        "ip_address": "192.168.16.1",
        "protocol": 1
      },
      {
        "ip_address": "192.168.16.1",
        "protocol": 1
      }
    ]
  },
  {
    "label": "default/kubernetes",
    "st_mappings": [
      {
        "external_ip": "10.96.0.1",
        "external_port": 443,
        "local_ips": [
          {
            "local_ip": "10.20.0.2",
            "local_port": 6443
          }
        ],
        "twice_nat": 2
      }
    ]
  },
// additional DNAT Mappings
...

VPP NAT Interfaces#

Description: GET interface-specific NAT information.

curl -X GET http://localhost:9191/dump/vpp/v2/nat/interfaces

Sample response:

{
  "name": "tap-vpp2",
  "nat_inside": true,
  "nat_outside": true
},
{
  "name": "vxlanBVI",
  "nat_inside": true,
  "nat_outside": true
},
{
  "name": "vpp-tap-61c1f434be0396de2d2347cbebc51a822799f3ee78f0f98a101a816",
  "nat_outside": true
},
{
  "name": "vpp-tap-860ca2dd92a3a4bf0e330affcedbe17135b7695e6ccd70e06c3eacb",
  "nat_inside": true,
  "nat_outside": true
},
{
  "name": "vpp-tap-9653fece511f2e658bcb95ec986b52532acdf540bece3652e01ff32",
  "nat_outside": true
},
{
  "name": "GigabitEthernet0/8/0",
  "nat_outside": true,
  "output_feature": true
}

VPP NAT Pool#

Description: GET NAT address pool information.

curl -X GET http://localhost:9191/dump/vpp/v2/nat/pools

Sample response:

[
  {
    "vrf_id": 4294967295,
    "first_ip": "192.168.16.1"
  },
  {
    "vrf_id": 4294967295,
    "first_ip": "10.1.1.254",
    "twice_nat": true
  }
]

VPP IPsec SPD#

Description: GET IPsec security policy database (SPD) entries.

curl -X GET http://localhost:9191/dump/vpp/v2/ipsec/spds

Sample response:

[
  {
    "index": 1,
    "interfaces": [
      {
        "name": "tap1"
      }
    ]
  }
]

VPP IPsec SA#

Description: GET IPsec security association (SA) entries.

curl -X GET http://localhost:9191/dump/vpp/v2/ipsec/sas

Sample response:

[
  {
    "Sa": {
      "index": 1,
      "spi": 1001,
      "protocol": 1,
      "crypto_alg": 1,
      "crypto_key": "4a506a794f574265564551694d653768",
      "integ_alg": 2,
      "integ_key": "4339314b55523947594d6d3547666b45764e6a58"
    },
    "Meta": {
      "SaID": 1,
      "Interface": "",
      "IfIdx": 4294967295,
      "CryptoKeyLen": 0,
      "IntegKeyLen": 0,
      "Salt": 0,
      "SeqOutbound": 0,
      "LastSeqInbound": 0,
      "ReplayWindow": 0,
      "TotalDataSize": 0
    }
  }
]

VPP IPsec SP#

Description: GET IPsec security policies

curl -X GET http://localhost:9191/dump/vpp/v2/ipsec/sps

Sample response:

[
  {
    "spd_index": 1,
    "sa_index": 1,
    "priority": 5,
    "is_outbound": true,
    "remote_addr_start": "0.0.0.0",
    "remote_addr_stop": "255.255.255.255",
    "local_addr_start": "0.0.0.0",
    "local_addr_stop": "255.255.255.255",
    "protocol": 4,
    "remote_port_start": 65535,
    "local_port_start": 65535,
    "action": 3
  }
]

VPP Punt Socket#

Description: GET punt socket data.

curl -X GET http://localhost:9191/dump/vpp/v2/punt/sockets

VPP Telemetry#

Description: GET VPP telemetry information.

curl -X GET http://localhost:9191/vpp/telemetry

VPP Telemetry/Memory#

Description: GET VPP telemetry memory stats.

curl -X GET http://localhost:9191/vpp/telemetry/memory

Sample response:

{
  "threads": [
    {
      "id": 0,
      "name": "north1",
      "size": 0,
      "objects": 0,
      "used": 0,
      "total": 0,
      "free": 0,
      "reclaimed": 0,
      "overhead": 0,
      "pages": 0,
      "page_size": 0
    }
  ]
}

VPP Telemetry/Runtime#

Description: GET VPP telemetry runtime stats.

curl -X GET http://localhost:9191/vpp/telemetry/runtime

Sample response:

{
    "threads": [
        {
            "id": 0,
            "name": "ALL",
            "time": 0,
            "avg_vectors_per_node": 0,
            "last_main_loops": 0,
            "vectors_per_main_loop": 0,
            "vector_length_per_node": 0,
            "vector_rates_in": 0,
            "vector_rates_out": 0,
            "vector_rates_drop": 0,
            "vector_rates_punt": 0,
            "items": [
                {
                    "index": 0,
                    "name": "null-node",
                    "state": "",
                    "calls": 0,
                    "vectors": 0,
                    "suspends": 0,
                    "clocks": 0,
                    "vectors_per_call": 0
                },
                {
                    "index": 1,
                    "name": "vmxnet3-input",
                    "state": "",
                    "calls": 0,
                    "vectors": 0,
                    "suspends": 0,
                    "clocks": 0,
                    "vectors_per_call": 0
                },
// more items
...

VPP Telemetry/Nodecount#

Description: GET VPP telemetry nodecount stats.

curl -X GET http://localhost:9191/vpp/telemetry/nodecount

Sample response:

{
    "counters": [
        {
            "value": 0,
            "node": "/err/null-node",
            "name": "blackholed packets"
        },
        {
            "value": 0,
            "node": "/err/vmxnet3-input",
            "name": "buffer alloc error"
        },
        {
            "value": 0,
            "node": "/err/vmxnet3-input",
            "name": "Rx packet error - no SOP"
        },
// more counters
...

Version#

Description: GET VPP Agent Version Info

curl -X GET http://localhost:9191/info/version

Sample Response:

{
  "App": "vpp-agent",
  "Version": "v3.2.0-alpha-22-ge9aa3556d",
  "GitCommit": "e9aa3556defe818904670e3f5051246fdd11746d",
  "GitBranch": "HEAD",
  "BuildUser": "root",
  "BuildHost": "06a7eb7fd825",
  "BuildTime": 1593781318,
  "GoVersion": "go1.14.4",
  "OS": "linux",
  "Arch": "amd64"
}

VPP CLI Command#

Description: Execute VPP CLI commands through a REST API.

For a show version command, use

curl -X POST   'http://localhost:9191/vpp/command?Content-Type=application/json'   -H 'Content-Type: application/json' -d '{"vppclicommand":"show version"}'

Sample response:

"vpp v20.01-rc2~11-gfce396738~b17 built by root on b81dced13911 at 2020-01-29T21:07:15\n"

Linux Interfaces#

Description: GET all Linux interfaces.

curl -X GET http://localhost:9191/dump/linux/v2/interfaces

Sample response:

[
  {
    "interface": {
      "name": "tap-vpp1",
      "type": "TAP_TO_VPP",
      "hostIfName": "vpp1",
      "enabled": true,
      "ipAddresses": ["172.30.1.2/24"],
      "physAddress": "ca:aa:bc:5d:76:9c",
      "mtu": 1450,
      "tap": {
        "vppTapIfName": "tap-vpp2"
      }
    },
    "interface_meta": {
      "linux_if_index": 6,
      "parent_index": 0,
      "master_index": 0,
      "oper_state": 0,
      "flags": 69699,
      "encapsulation": "ether",
      "num_rx_queue": 0,
      "num_tx_queue": 0,
      "tx_queue_len": 500
    }
  },
// additional linux interfaces
...

Linux L3 ARPs#

Description: GET Linux L3 ARP entries.

curl -X GET http://localhost:9191/dump/linux/v2/arps

Sample response:

[
  {
    "linux_arp": {
      "interface": "linux-tap-61c1f434be0396de2d2347cbebc51a822799f3ee78f0f98a101a8",
      "ip_address": "10.1.1.1",
      "hw_address": "02:fe:af:aa:51:e6"
    },
    "linux_arp_meta": {
      "interface_index": 7,
      "ip_family": 2,
      "vni": 0
    }
  },
...

Linux Interface Stats#

Description: GET Linux interface stats.

curl -X GET http://localhost:9191/stats/linux/interfaces

Sample response:

{
  "interface_name": "tap-vpp1",
  "interface_type": 2,
  "linux_if_index": 6,
  "rx_packets": 58919,
  "tx_packets": 54273,
  "rx_bytes": 83203332,
  "tx_bytes": 85581834,
  "rx_errors": 0,
  "tx_errors": 0,
  "rx_dropped": 0,
  "tx_dropped": 0
},
{
  "interface_name": "linux-loop-61c1f434be0396de2d2347cbebc51a822799f3ee78f0f98a101a",
  "interface_type": 3,
  "linux_if_index": 1,
  "rx_packets": 50540,
  "tx_packets": 50540,
  "rx_bytes": 4033092,
  "tx_bytes": 4033092,
  "rx_errors": 0,
  "tx_errors": 0,
  "rx_dropped": 0,
  "tx_dropped": 0
},
...

Linux L3 Routes#

Description: GET Linux L3 routing table entries.

curl -X GET http://localhost:9191/dump/linux/v2/routes

Sample response:

[
  {
    "Route": {
      "outgoing_interface": "tap-vpp1",
      "dst_network": "10.1.0.0/16",
      "gw_addr": "172.30.1.1"
    },
    "Meta": {
      "interface_index": 6,
      "link_scope": 0,
      "protocol": 3,
      "mtu": 0
    }
  },
  {
    "Route": {
      "outgoing_interface": "tap-vpp1",
      "dst_network": "10.96.0.0/12",
      "gw_addr": "172.30.1.1"
    },
    "Meta": {
      "interface_index": 6,
      "link_scope": 0,
      "protocol": 3,
      "mtu": 0
    }
  },
// more Linux routes
...

Stats/Configurator#

Description: GET configurator operations stats.

curl -X GET http://localhost:9191/stats/configurator