Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ././../../../../../../usr/include/liblldp.h
Real path: /usr/include/liblldp.h
Zurück
/* * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. */ #ifndef _LIBLLDP_H #define _LIBLLDP_H #ifdef __cplusplus extern "C" { #endif #include <libdladm.h> #include <libnvpair.h> #include <lldp.h> #include <sys/types.h> /* * WARNING * * The interfaces defined in this file are private to the implementation * of Solaris and are subject to change at any time without notice. * Applications using these interfaces may fail to run on future releases. */ #define LLDP_ALLSTR "all" #define LLDP_NONESTR "none" #define LLDP_MAXPROPNAMELEN 128 #define LLDP_MAXPROPVALLEN 512 typedef enum lldp_propclass_e { LLDP_PROPCLASS_NONE = 0x00, LLDP_PROPCLASS_AGENT = 0x01, LLDP_PROPCLASS_SYSCAPAB_TLV = 0x02, LLDP_PROPCLASS_MGMTADDR_TLV = 0x04, LLDP_PROPCLASS_PFC_TLV = 0x08, LLDP_PROPCLASS_APPLN_TLV = 0x10, LLDP_PROPCLASS_EVB_TLV = 0x20, LLDP_PROPCLASS_ETSCFG_TLV = 0x40 } lldp_propclass_t; #define LLDP_PROPCLASS_AGENT_TLVS \ (LLDP_PROPCLASS_PFC_TLV | LLDP_PROPCLASS_APPLN_TLV | \ LLDP_PROPCLASS_EVB_TLV| LLDP_PROPCLASS_ETSCFG_TLV) #define LLDP_PROPCLASS_GLOBAL_TLVS \ (LLDP_PROPCLASS_SYSCAPAB_TLV | LLDP_PROPCLASS_MGMTADDR_TLV) /* * one per LLDP agent and it records the count of significant events * in the transmit and receive state machines. */ typedef struct lldp_stats_s { uint32_t ls_stats_AgeoutsTotal; uint32_t ls_stats_FramesDiscardedTotal; uint32_t ls_stats_FramesInErrorsTotal; uint32_t ls_stats_FramesInTotal; uint32_t ls_stats_FramesOutTotal; uint32_t ls_stats_TLVSDiscardedTotal; uint32_t ls_stats_TLVSUnrecognizedTotal; uint32_t ls_stats_lldpduLengthErrors; } lldp_stats_t; /* * captures inserts/deletes/drops/ageouts/modified time for * remote systems table. This stats table is shared by all * lldp agents running on the system. */ typedef struct lldp_remtable_stats_s { uint32_t lrs_stats_RemTablesLastChangeTime; uint32_t lrs_stats_RemTablesInserts; uint32_t lrs_stats_RemTablesDeletes; uint32_t lrs_stats_RemTablesDrops; uint32_t lrs_stats_RemTablesAgeouts; uint32_t __padding; } lldp_remtable_stats_t; /* Unknown LLDP TLV */ typedef struct lldp_unknowntlv_s { uint32_t lu_type; uint32_t lu_len; uint8_t lu_value[512]; /* raw bytes */ } lldp_unknowntlv_t; /* Unrecognized Organization specific TLV */ typedef struct lldp_unrec_orginfo_s { uint8_t lo_oui[3]; uint8_t lo_subtype; uint32_t lo_index; uint32_t lo_len; uint8_t lo_value[508]; } lldp_unrec_orginfo_t; typedef struct lldp_desc_s { uchar_t *ld_desclen; uint_t ld_desc; } lldp_desc_t; typedef enum { LLDP_STATUS_OK = 0, LLDP_STATUS_EXIST, LLDP_STATUS_BADARG, LLDP_STATUS_FAILED, LLDP_STATUS_TOOSMALL, LLDP_STATUS_NOTSUP, LLDP_STATUS_PROPUNKNOWN, LLDP_STATUS_BADVAL, LLDP_STATUS_NOMEM, LLDP_STATUS_LINKINVAL, LLDP_STATUS_LINKBUSY, LLDP_STATUS_PERSISTERR, LLDP_STATUS_BADRANGE, LLDP_STATUS_DISABLED, LLDP_STATUS_TEMPONLY, LLDP_STATUS_NOTDEFINED, LLDP_STATUS_NOTFOUND, LLDP_STATUS_UNKNOWN, LLDP_STATUS_PERMDENIED } lldp_status_t; /* DCBX Control TLV */ typedef struct dcbx_ctl_tlv_s { uint8_t dct_overs; /* Operating Version */ uint8_t dct_mvers; /* Max supported Version */ uint32_t dct_seqno; /* Sequence number */ uint32_t dct_ackno; /* Acknowledgement number */ } dcbx_ctl_tlv_t; /* DCBX Feature header */ typedef struct dcbx_feature_tlv_s { uint8_t dft_overs; /* Operating Version */ uint8_t dft_mvers; /* Max supported version */ uint8_t dft_flags_n_reserved; /* Flags and reserved bits */ uint8_t dft_fsubtype; /* Feature sub-type */ uint_t dft_nvals; /* For application TLV */ void *dft_fcfg; /* Feature Config */ } dcbx_feature_tlv_t; /* PFC local/configured parameters */ typedef struct dcbx_pfc_s { uint8_t dp_map; /* 8-bit PFC map */ uint8_t dp_ntcs; /* Number of Traffic Class (TC) supported */ /* LocalParamAdvertise ? */ } dcbx_pfc_t; /* * following are the link properties that determine the TLV's * that a lldp agent can advertise. */ #define LLDP_BASICTLV_GRPNAME "basic-tlv" #define LLDP_8021TLV_GRPNAME "dot1-tlv" #define LLDP_8023TLV_GRPNAME "dot3-tlv" #define LLDP_VIRTTLV_GRPNAME "virt-tlv" /* numerical equivalent of above groups */ #define LLDP_BASIC_TLVGRP 0x01 #define LLDP_8021_TLVGRP 0x02 #define LLDP_8023_TLVGRP 0x04 #define LLDP_VIRT_TLVGRP 0x08 /* various possible values in 'basic-tlv' group */ #define LLDP_BASIC_NONE_TLVNAME LLDP_NONESTR #define LLDP_BASIC_PORTDESC_TLVNAME "portdesc" #define LLDP_BASIC_SYSNAME_TLVNAME "sysname" #define LLDP_BASIC_SYSDESC_TLVNAME "sysdesc" #define LLDP_BASIC_SYSCAPAB_TLVNAME "syscapab" #define LLDP_BASIC_MGMTADDR_TLVNAME "mgmtaddr" #define LLDP_BASIC_ALL_TLVNAME LLDP_ALLSTR /* numerical equivalent of the above 'basic-tlv' values */ #define LLDP_BASIC_NONE_TLV 0x00 #define LLDP_BASIC_PORTDESC_TLV 0x01 #define LLDP_BASIC_SYSNAME_TLV 0x02 #define LLDP_BASIC_SYSDESC_TLV 0x04 #define LLDP_BASIC_SYSCAPAB_TLV 0x08 #define LLDP_BASIC_MGMTADDR_TLV 0x10 /* following are the tlv's we support */ #define LLDP_BASIC_ALL_TLV \ (LLDP_BASIC_PORTDESC_TLV | LLDP_BASIC_SYSNAME_TLV |\ LLDP_BASIC_SYSDESC_TLV|LLDP_BASIC_SYSCAPAB_TLV|\ LLDP_BASIC_MGMTADDR_TLV) /* various possible values in 'dot1-tlv' group */ #define LLDP_8021_NONE_TLVNAME LLDP_NONESTR #define LLDP_8021_VLAN_NAME_TLVNAME "vlanname" #define LLDP_8021_PVID_TLVNAME "pvid" #define LLDP_8021_LINK_AGGR_TLVNAME "linkaggr" #define LLDP_8021_PFC_TLVNAME "pfc" #define LLDP_8021_APPLN_TLVNAME "appln" #define LLDP_8021_EVB_TLVNAME "evb" #define LLDP_8021_ETSCFG_TLVNAME "etscfg" #define LLDP_8021_ETSRECO_TLVNAME "etsreco" #define LLDP_8021_ALL_TLVNAME LLDP_ALLSTR /* numerical equivalent of the above '8021-tlv' values */ #define LLDP_8021_NONE_TLV 0x0000 #define LLDP_8021_VLAN_NAME_TLV 0x0001 #define LLDP_8021_PVID_TLV 0x0002 #define LLDP_8021_LINK_AGGR_TLV 0x0004 #define LLDP_8021_PFC_TLV 0x0008 #define LLDP_8021_APPLN_TLV 0x0010 #define LLDP_8021_EVB_TLV 0x0020 #define LLDP_8021_ETSCFG_TLV 0x0040 #define LLDP_8021_ETSRECO_TLV 0x0080 /* following are the tlv's we support */ #define LLDP_8021_ALL_TLV (LLDP_8021_VLAN_NAME_TLV |\ LLDP_8021_PVID_TLV | \ LLDP_8021_LINK_AGGR_TLV | \ LLDP_8021_PFC_TLV | \ LLDP_8021_ETSCFG_TLV | \ LLDP_8021_ETSRECO_TLV | \ LLDP_8021_APPLN_TLV | \ LLDP_8021_EVB_TLV) /* various possible values in 'dot3-tlv' group */ #define LLDP_8023_NONE_TLVNAME LLDP_NONESTR #define LLDP_8023_MAXFRAMESZ_TLVNAME "max-framesize" #define LLDP_8023_MACPHY_TLVNAME "macphy" #define LLDP_8023_POWERMDI_TLVNAME "powermdi" #define LLDP_8023_ALL_TLVNAME LLDP_ALLSTR /* numerical equivalent of the above '8023-tlv' values */ #define LLDP_8023_NONE_TLV 0x00 #define LLDP_8023_MAXFRAMESZ_TLV 0x01 #define LLDP_8023_MACPHY_TLV 0x02 #define LLDP_8023_POWERMDI_TLV 0x04 /* following are the tlv's we support */ #define LLDP_8023_ALL_TLV LLDP_8023_MAXFRAMESZ_TLV /* various possible values in 'virt-tlv' group */ #define LLDP_VIRT_NONE_TLVNAME LLDP_NONESTR #define LLDP_VIRT_VNIC_TLVNAME "vnic" #define LLDP_VIRT_ALL_TLVNAME LLDP_ALLSTR /* numerical equivalent of the above 'virt-tlv' values */ #define LLDP_VIRT_NONE_TLV 0x00 #define LLDP_VIRT_VNIC_TLV 0x01 #define LLDP_VIRT_ALL_TLV LLDP_VIRT_VNIC_TLV /* * System capability properties. * * We do not have LLDP_ALLSTR because it's an invalid value. A system that has * 'station' capability cannot have any other capability at the same time. * * We do not have LLDP_NONESTR because a system should support atleast one of * capability below. */ #define LLDP_SYSCAPAB_OTHER_NAME "other" #define LLDP_SYSCAPAB_REPEATER_NAME "repeater" #define LLDP_SYSCAPAB_MACBRIDGE_NAME "bridge" #define LLDP_SYSCAPAB_WLAN_AP_NAME "wlan-ap" #define LLDP_SYSCAPAB_ROUTER_NAME "router" #define LLDP_SYSCAPAB_TELEPHONE_NAME "telephone" #define LLDP_SYSCAPAB_DOCSIS_CD_NAME "docsis-cd" #define LLDP_SYSCAPAB_STATION_NAME "station" #define LLDP_SYSCAPAB_CVLAN_NAME "cvlan" #define LLDP_SYSCAPAB_SVLAN_NAME "svlan" #define LLDP_SYSCAPAB_TPMR_NAME "tpmr" /* * option flags passed to liblldp functions * * - LLDP_OPT_ACTIVE: * indicates the current value of a property * * - LLDP_OPT_DEFAULT: * indicatest the default value of a property * * - LLDP_OPT_PERM * indicates the permission of a property * * - LLDP_OPT_POSSIBLE * indicates range of values for a given property * * - LLDP_OPT_APPEND * for multi-valued properties, append a new value. * * - LLDP_OPT_REMOVE * for multi-valued properties, remove the specified value * * - LLDP_OPT_AUTO * indicates that the TLV is begin modified by the daemon itself. * * - LLDP_OPT_EFFECTIVE * indicates operating value for a given property * */ #define LLDP_OPT_ACTIVE 0x00000001 #define LLDP_OPT_DEFAULT 0x00000002 #define LLDP_OPT_PERM 0x00000004 #define LLDP_OPT_POSSIBLE 0x00000008 #define LLDP_OPT_APPEND 0x00000010 #define LLDP_OPT_REMOVE 0x00000020 #define LLDP_OPT_AUTO 0x00000040 #define LLDP_OPT_EFFECTIVE 0x00000080 #define LLDP_NVP_LOCAL_CFG "localcfg" #define LLDP_NVP_OPER_CFG "opercfg" #define DCBX_NVP_PENDING "pending" #define DCBX_MAPSIZE 15 #define DCBX_MAX_PFC_TCS 8 #define DCBX_MIN_PFC_TCS 0 #define DCBX_MAX_MAP 255 #define DCBX_MIN_MAP 0 #define DCBX_MAX_APPLN_PRI 7 #define DCBX_MIN_APPLN_PRI 0 /* DCBX CEE (Intel OUI) subtype */ #define LLDP_INTELOUI_DCBX_SUBTYPE 0x2 #define DCBX_FEATURE_SUBTYPE_NONE 0 /* Application FCoE subtype */ #define DCBX_APPLICATION_SUBTYPE_FCOE 0 /* Application TLVs */ #define DCBX_APPLN_OUI LLDP_INTEL_OUI #define DCBX_TLVHDR_SZ 6 /* * maximum number of application protocol that can be in one * application tlv. */ #define DCBX_APPLICATION_PROTOCOL_SIZE 6 /* Selector Field */ #define DCBX_APPLICATION_SF(ouisf) (((ouisf)) & 0x3) #define DCBX_APPLICATION_OUI(ouimap) (ntohl(*(ouimap)) >> 8) /* Lower 16 bits */ #define DCBX_APPLICATION_LOUI(oui) ((oui) & 0xFFFF) #define DCBX_APPLICATION_UOUI(oui) (((oui) >> 16) & 0xFF) #define DCBX_APPLICATION_GENERATE_OUI(uouisf, loui) \ ((((uouisf) >> 2) << 16) | (loui)) #define DCBX_APPLICATION_PMAP(ouimap) (ntohl(*(ouimap)) & 0x000000FF) #define DCBX_MAX_VERSION 1 #define DCBX_TLV_MAXLEN 512 #define DCBX_FEATURE_TLVHDR_SIZE 0x06 #define DCBX_ENABLED_FLAG 0x80 #define DCBX_WILLING_FLAG 0x40 #define DCBX_ERROR_FLAG 0x20 #define DCBX_RESVERROR_FLAG 0x10 #define DCBX_FEATURE_ENABLED(fnr) (((fnr) & DCBX_ENABLED_FLAG) != 0) #define DCBX_FEATURE_WILLING(fnr) (((fnr) & DCBX_WILLING_FLAG) != 0) #define DCBX_FEATURE_ERROR(fnr) (((fnr) & DCBX_ERROR_FLAG) != 0) #define DCBX_FEATURE_RESVERROR(fnr) (((fnr) & DCBX_RESVERROR_FLAG) != 0) #define LLDP_INTEL_OUI_LIST "intelOUI" #define PFC_NVP_PFCMAP "pfcmap" #define PFC_NVP_PFCNTCS "pfcntcs" #define DCBX_NVP_CONTROL "dcbx_control" extern const char *lldp_status2str(lldp_status_t, char *); extern lldp_status_t lldp_errno2status(int); /* * Property management functions */ typedef boolean_t lldp_prop_wfunc_t(const char *, const char *, void *); extern lldp_status_t lldp_walk_prop(lldp_prop_wfunc_t *, void *, lldp_propclass_t); extern lldp_status_t lldp_get_agent_info(const char *, boolean_t, nvlist_t **); extern lldp_status_t lldp_get_agentinfo_pfc(const char *, boolean_t, lldp_pfc_t *); extern lldp_status_t lldp_get_agent_stats(const char *, lldp_stats_t *, uint32_t); extern int lldp_str2nvlist(const char *, nvlist_t **, boolean_t); extern lldp_status_t lldp_get_agentprop(const char *, const char *, char *, uint_t *, uint_t); extern lldp_status_t lldp_get_agent_tlvprop(const char *, const char *, const char *, char *, uint_t *, uint_t); extern lldp_status_t lldp_get_global_tlvprop(const char *, const char *, char *, uint_t *, uint_t); extern lldp_status_t lldp_set_agentprop(const char *, const char *, char *, uint_t); extern lldp_status_t lldp_set_global_tlvprop(const char *, const char *, char *, uint_t); extern lldp_status_t lldp_set_agent_tlvprop(const char *, const char *, const char *, char *, uint_t); extern char *lldp_portID2str(lldp_portid_t *, char *, size_t); extern char *lldp_chassisID2str(lldp_chassisid_t *, char *, size_t); extern char *lldp_port_subtype2str(uint8_t); extern char *lldp_maddr_subtype2str(uint8_t); extern char *lldp_maddr_ifsubtype2str(uint8_t); extern char *lldp_chassis_subtype2str(uint8_t); extern void lldp_syscapab2str(uint16_t, char *, size_t); extern lldp_status_t lldp_str2syscapab(const char *, uint16_t *); extern void lldp_mgmtaddr2str(lldp_mgmtaddr_t *, char *, size_t); extern lldp_status_t lldp_str2mask(const char *, char *, uint32_t *); extern lldp_status_t lldp_mask2str(const char *, uint32_t, char *, uint_t *, boolean_t); extern const char *lldp_mode2str(lldp_admin_status_t); extern const char *lldp_dcbmode2str(lldp_dcbmode_status_t); extern void lldp_bitmap2str(uint8_t, char *, uint_t); extern int lldp_arr2str(uint8_t *, uint_t, char *, uint_t); extern int lldp_str2arr(char *, uint8_t *, uint_t); extern boolean_t lldp_is_enabled(const char *); extern int lldp_nvlist2chassisid(nvlist_t *, lldp_chassisid_t *); extern int lldp_nvlist2portid(nvlist_t *, lldp_portid_t *); extern int lldp_nvlist2sysname(nvlist_t *, char **); extern int lldp_nvlist2sysdescr(nvlist_t *, char **); extern int lldp_nvlist2portdescr(nvlist_t *, char **); extern int lldp_nvlist2ttl(nvlist_t *, uint16_t *); extern int lldp_nvlist2syscapab(nvlist_t *, lldp_syscapab_t *); extern int lldp_nvlist2mgmtaddr(nvlist_t *, const char *, lldp_mgmtaddr_t **, int *); extern int lldp_nvlist2maxfsz(nvlist_t *, uint16_t *); extern int lldp_nvlist2vlan(nvlist_t *, lldp_vlan_info_t **, int *); extern int lldp_nvlist2vnic(nvlist_t *, lldp_vnic_info_t **, int *); extern int lldp_nvlist2aggr(nvlist_t *, lldp_aggr_t *); extern int lldp_nvlist2pvid(nvlist_t *, uint16_t *); extern int lldp_nvlist2pfc(nvlist_t *, lldp_pfc_t *); extern int lldp_nvlist2pending(nvlist_t *, boolean_t *); extern int lldp_nvlist2ets(nvlist_t *, lldp_ets_t *, boolean_t); extern int lldp_nvlist2appln(nvlist_t *, lldp_appln_t **, uint_t *); extern int lldp_nvlist2app(nvlist_t *, uint16_t, uint8_t, lldp_appln_t *); extern int lldp_nvlist2evb(nvlist_t *, lldp_evb_t *); extern int lldp_nvlist2fcoepri(nvlist_t *, uint8_t *); extern int lldp_nvlist2unknowntlv(nvlist_t *, int, lldp_unknowntlv_t **, uint_t *); extern int lldp_nvlist2unrec_orginfo(nvlist_t *, const char *, lldp_unrec_orginfo_t **, uint_t *); extern int lldp_nvlist2infovalid(nvlist_t *, uint16_t *); extern int lldp_nvlist2nexttx(nvlist_t *, uint16_t *); extern void lldp_firsttlv(uint8_t *, int, lldp_tlv_t *); extern void lldp_nexttlv(uint8_t *, int, lldp_tlv_t *, lldp_tlv_t *); extern void lldp_set_typelen(uint8_t *, uint8_t, size_t); extern void lldp_set_orgspecid_subtype(uint8_t *, uint8_t, uint32_t, size_t); extern int lldp_tlv2chassisid(lldp_tlv_t *, lldp_chassisid_t *); extern int lldp_tlv2portid(lldp_tlv_t *, lldp_portid_t *); extern int lldp_tlv2ttl(lldp_tlv_t *, uint16_t *); extern int lldp_tlv2portdescr(lldp_tlv_t *, char *); extern int lldp_tlv2sysname(lldp_tlv_t *, char *); extern int lldp_tlv2sysdescr(lldp_tlv_t *, char *); extern int lldp_tlv2syscapab(lldp_tlv_t *, lldp_syscapab_t *); extern int lldp_tlv2mgmtaddr(lldp_tlv_t *, lldp_mgmtaddr_t *); extern int lldp_tlv2maxfsz(lldp_tlv_t *, uint16_t *); extern int lldp_tlv2aggr(lldp_tlv_t *, lldp_aggr_t *); extern int lldp_tlv2pvid(lldp_tlv_t *, uint16_t *); extern int lldp_tlv2vlan(lldp_tlv_t *, lldp_vlan_info_t *); extern int lldp_tlv2vnic(lldp_tlv_t *, lldp_vnic_info_t *); extern int lldp_tlv2pfc(lldp_tlv_t *, lldp_pfc_t *); extern int lldp_tlv2ets(lldp_tlv_t *, lldp_ets_t *, boolean_t); extern int lldp_tlv2appln(lldp_tlv_t *, lldp_appln_t **, uint_t *); extern int lldp_tlv2evb(lldp_tlv_t *, lldp_evb_t *); extern int lldp_tlv2unknown(lldp_tlv_t *, char *, size_t); extern void lldp_get_ouistype(lldp_tlv_t *, uint32_t *, uint32_t *); extern int lldp_end2pdu(uint8_t *, size_t, size_t *); extern int lldp_chassisid2pdu(lldp_chassisid_t *, uint8_t *, size_t, size_t *); extern int lldp_portid2pdu(lldp_portid_t *, uint8_t *, size_t, size_t *); extern int lldp_ttl2pdu(uint16_t, uint8_t *, size_t, size_t *); extern int lldp_portdescr2pdu(const char *, uint8_t *, size_t, size_t *); extern int lldp_sysname2pdu(const char *, uint8_t *, size_t, size_t *); extern int lldp_sysdescr2pdu(const char *, uint8_t *, size_t, size_t *); extern int lldp_syscapab2pdu(lldp_syscapab_t *, uint8_t *, size_t, size_t *); extern int lldp_sysport_mgmtaddr2pdu(uint8_t *, size_t, uint32_t, uint8_t *, size_t, size_t *); extern int lldp_mgmtaddr2pdu(lldp_mgmtaddr_t *, uint8_t *, size_t, size_t *); extern int lldp_maxfsz2pdu(uint16_t, uint8_t *, size_t, size_t *); extern int lldp_aggr2pdu(lldp_aggr_t *, uint8_t *, size_t, size_t *); extern int lldp_pvid2pdu(uint16_t, uint8_t *, size_t, size_t *); extern int lldp_vlan2pdu(lldp_vlan_info_t *, uint8_t *, size_t, size_t *); extern int lldp_vnic2pdu(lldp_vnic_info_t *, uint8_t *, size_t, size_t *); extern int lldp_pfc2pdu(lldp_pfc_t *, uint8_t *, size_t, size_t *); extern int lldp_ets2pdu(lldp_ets_t *, uint8_t *, size_t, size_t *, boolean_t); extern int lldp_appln2pdu(lldp_appln_t *, uint_t, uint8_t *, size_t, size_t *); extern int lldp_evb2pdu(lldp_evb_t *, uint8_t *, size_t, size_t *); extern int lldp_door_call(void *, size_t, void *, size_t); extern int lldp_door_dyncall(void *, size_t, void **, size_t); extern lldp_status_t lldp_notify_events(int, nvlist_t *); extern char *dcbx_appln_sel2str(int); extern uint_t lldp_tlvname2pclass(const char *); extern char *lldp_pclass2tlvname(lldp_propclass_t); extern char *lldp_evb_rrstat2str(uint8_t); extern lldp_status_t lldp_set_evb_state(const char *); extern lldp_status_t lldp_unset_evb_state(const char *); extern int dcbx_get_tlv(nvlist_t *, uint8_t, uint8_t, void *); extern void dcbx_byte2control_tlv(uint8_t *, uint_t, dcbx_ctl_tlv_t *); extern int dcbx_byte2tlv(uint8_t *, uint8_t, dcbx_feature_tlv_t *); extern int dcbx_byte2pfc_tlv(uint8_t *, uint8_t, dcbx_feature_tlv_t *); extern char *dcbx_applncee_sf2str(int); extern int dcbx_byte2application_tlv(uint8_t *, uint8_t, dcbx_feature_tlv_t *); #ifdef __cplusplus } #endif #endif /* _LIBLLDP_H */