Merge pull request #587 from DrDoof/feat/lldp-tick

lldp: time the transmit interval from the system tick
This commit is contained in:
Rob Emery authored and GitHub committed 2026-10-29 12:19:10 +00:00
commit 84cb01f67d
2 files changed
+15 -9

No files matched your search

+12 -7
View File
@@ -13,24 +13,29 @@
extern __xdata bool lldp_enabled;
extern __code const struct machine machine;
__xdata uint16_t lldp_ticks;
extern volatile __xdata uint32_t ticks;
__xdata uint8_t lldp_tick_last;
__xdata uint8_t lldp_seconds;
__xdata uint16_t lldp_logical_port_status = 0xffff;
void lldp_init(void) __banked
{
lldp_ticks = 0;
lldp_tick_last = (uint8_t)ticks;
lldp_seconds = 0;
}
void lldp_tick(void) __banked
{
lldp_ticks++;
if (lldp_ticks < LLDP_TX_INTERVAL_TICKS)
if (!TICKS_DUE(lldp_tick_last, SYS_TICK_HZ))
return;
lldp_tick_last += SYS_TICK_HZ;
lldp_ticks = 0;
if (++lldp_seconds < LLDP_TX_INTERVAL_S)
return;
lldp_seconds = 0;
if(lldp_enabled == 1)
if (lldp_enabled)
lldp_send();
}
+3 -2
View File
@@ -7,7 +7,8 @@
#define LLDP_ETHERTYPE 0x88cc
#define LLDP_ETHERTYPE_LENGTH 2
#define LLDP_MAX_FRAME 256
#define LLDP_TX_INTERVAL_TICKS 6000
#define LLDP_TX_INTERVAL_S 30
#define LLDP_HOLD_MULTIPLIER 4
#define LLDP_PORT_ID_TLV_TYPE 2
#define LLDP_PORT_ID_TLV_LENGTH 0x02
@@ -15,7 +16,7 @@
#define LLDP_TTL_TLV_TYPE 3
#define LLDP_TTL_TLV_LENGTH 2
#define LLDP_TTL_TTL_SECONDS 120
#define LLDP_TTL_TTL_SECONDS (LLDP_HOLD_MULTIPLIER * LLDP_TX_INTERVAL_S)
#define LLDP_CHASSIS_ID_TLV_TYPE 1
#define LLDP_CHASSIS_ID_TLV_LENGTH 7