8#define TLV_CHASSIS_ID 1
11#define TLV_PORT_DESC 4
15#define TLV_MANAGMENT_ADDR 8
18class LLDPEntity :
public TimeOutElement,
public config_obj
22 PoolPtr m_ActivePacket;
28 virtual void TimeElementEvent();
29 void RawAdd(uint8_t
id,
unsigned int len, uint8_t *pData);
30 void RawAddString(uint8_t
id,
const char *str);
31 void RawAddMac(uint8_t
id, uint8_t sub_type,
MACADR &ma);
32 void AddMandatoryHeader();
34 void StartNewPacket();
35 void AddPortDescription(
const char *Description) { RawAddString(TLV_PORT_DESC, Description); };
36 void AddHostName(
const char *HostName) { RawAddString(TLV_SYS_NAME, HostName); };
37 void AddSysDescription(
const char *Description) { RawAddString(TLV_SYS_DESC, Description); };
38 void AddSysCapabilities(uint16_t capablities, uint16_t enabled);
39 void AddManagmentAddr(
IPADDR4 ipa);
40 void AddCustomRaw(uint32_t UUID, uint32_t org_sub, uint32_t datalen, puint8_t data);
41 void AddCustomInt(uint32_t UUID, uint32_t org_sub,
int data, uint32_t intlen);
42 void AddCustomString(uint32_t UUID, uint32_t org_sub,
const char *str);
46 config_bool m_bEnable{TRUE,
"Enable",
"Enable/disable LLDP transmisions"};
47 config_int m_iTxTime{30,
"TxTimer",
"Transmission interval in seconds"};
48 config_int m_iHoldTime{120,
"HoldTime",
"LLD TTL"};
49 config_int m_iRetransmitTime{2,
"RetransmitTime",
"Seconds to wait on Startup"};
53 virtual void BuildPacket();
54 void RebuildPacket() { BuildPacket(); };
Used to store and manipulate IPv4 addresses in dual stack mode.
Definition nettypes.h:208
Network interface configuration block class for interface control and configuration.
Definition netinterface.h:245
Used to store and manipulate MAC addresses.
Definition nettypes.h:69
Boolean Configuration Variable.
Definition config_obj.h:932
Signed 32-bit Integer Configuration Variable.
Definition config_obj.h:649
Base class used to create configuration objects.
Definition config_obj.h:277
Configuration object header file.
NetBurner Network Interface Header File.
NetBurner IPADDR4 Class. See the IPADDR4 Class page for complete documentation.
An OS_CRIT object is used to establish critical sections of code that can only be run by one task at ...
Definition nbrtos.h:1084