
Introduce a dump api for LLDP plugin Type: improvement Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com> Change-Id: If67dedd329cced59227187284646d147ef6ef92c
135 lines
3.9 KiB
Plaintext
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;
|
|
};
|