Files
vpp/src/plugins/lldp/lldp.api
Denys Haryachyy 9f8d3b9b2f lldp: dump api
Introduce a dump api for LLDP plugin

Type: improvement

Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
Change-Id: If67dedd329cced59227187284646d147ef6ef92c
2024-01-19 12:51:07 +00:00

135 lines
3.9 KiB
Plaintext

/*
* Copyright (c) 2017 Cisco and/or its affiliates.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
option version = "2.0.0";
import "vnet/interface_types.api";
import "vnet/ip/ip_types.api";
/** \brief configure global parameter for LLDP
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param system_name - VPP system name
@param tx_hold - multiplier for tx_interval when setting time-to-live (TTL)
value in the LLDP packets
@param tx_interval - time interval, in seconds, between each LLDP frames
*/
autoreply define lldp_config
{
u32 client_index;
u32 context;
u32 tx_hold;
u32 tx_interval;
string system_name[];
};
/** \brief Interface set LLDP request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - interface for which to enable/disable LLDP
@param mgmt_ip4_addr - management ip4 address of the interface
@param mgmt_ip6_addr - management ip6 address of the interface
@param mgmt_oid - OID(Object Identifier) of the interface
@param enable - if non-zero enable, else disable
@param port_desc - local port description
*/
autoreply define sw_interface_set_lldp
{
u32 client_index;
u32 context;
vl_api_interface_index_t sw_if_index;
vl_api_ip4_address_t mgmt_ip4;
vl_api_ip6_address_t mgmt_ip6;
u8 mgmt_oid[128];
bool enable [default=true];
string port_desc[];
};
/** \brief Dump lldp neighbors
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
*/
autoendian define lldp_dump
{
u32 client_index;
u32 context;
u32 cursor;
};
autoendian define lldp_dump_reply
{
u32 context;
i32 retval;
u32 cursor;
};
enum port_id_subtype
{
PORT_ID_SUBTYPE_RESERVED = 0x00,
PORT_ID_SUBTYPE_INTF_ALIAS = 0x01,
PORT_ID_SUBTYPE_PORT_COMP = 0x02,
PORT_ID_SUBTYPE_MAC_ADDR = 0x03,
PORT_ID_SUBTYPE_NET_ADDR = 0x04,
PORT_ID_SUBTYPE_INTF_NAME = 0x05,
PORT_ID_SUBTYPE_AGENT_CIRCUIT_ID = 0x06,
PORT_ID_SUBTYPE_LOCAL = 0x07,
};
enum chassis_id_subtype
{
CHASSIS_ID_SUBTYPE_RESERVED = 0x00,
CHASSIS_ID_SUBTYPE_CHASSIS_COMP = 0x01,
CHASSIS_ID_SUBTYPE_INTF_ALIAS = 0x02,
CHASSIS_ID_SUBTYPE_PORT_COMP = 0x03,
CHASSIS_ID_SUBTYPE_MAC_ADDR = 0x04,
CHASSIS_ID_SUBTYPE_NET_ADDR = 0x05,
CHASSIS_ID_SUBTYPE_INTF_NAME = 0x06,
CHASSIS_ID_SUBTYPE_LOCAL = 0x07,
};
/** \brief Details about neighbor
@param context - returned sender context, to match reply w/ request
@param sw_if_index - interface where neighbor was discovered
@param last_heard - last heard time
@param last_sent - last sent time
@param chassis_id - chassis id value
@param chassis_id_len - length for chassis id
@param port_id - port id value
@param port_id_len - length for port id
@param ttl - time to length for the neighbour
@param port_id_subtype - subtype for port_id
@param chassis_id_sybtype - sybtype for chassis_id
*/
autoendian define lldp_details
{
u32 context;
vl_api_interface_index_t sw_if_index;
f64 last_heard;
f64 last_sent;
u8 chassis_id[64];
u8 chassis_id_len;
u8 port_id[64];
u8 port_id_len;
u16 ttl;
vl_api_port_id_subtype_t port_id_subtype;
vl_api_chassis_id_subtype_t chassis_id_subtype;
option status="in_progress";
};
service {
rpc lldp_dump returns lldp_dump_reply
stream lldp_details;
};