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 __xdata bool lldp_enabled;
extern __code const struct machine machine; 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; __xdata uint16_t lldp_logical_port_status = 0xffff;
void lldp_init(void) __banked void lldp_init(void) __banked
{ {
lldp_ticks = 0; lldp_tick_last = (uint8_t)ticks;
lldp_seconds = 0;
} }
void lldp_tick(void) __banked void lldp_tick(void) __banked
{ {
lldp_ticks++; if (!TICKS_DUE(lldp_tick_last, SYS_TICK_HZ))
if (lldp_ticks < LLDP_TX_INTERVAL_TICKS)
return; 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(); lldp_send();
} }
+3 -2
View File
@@ -7,7 +7,8 @@
#define LLDP_ETHERTYPE 0x88cc #define LLDP_ETHERTYPE 0x88cc
#define LLDP_ETHERTYPE_LENGTH 2 #define LLDP_ETHERTYPE_LENGTH 2
#define LLDP_MAX_FRAME 256 #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_TYPE 2
#define LLDP_PORT_ID_TLV_LENGTH 0x02 #define LLDP_PORT_ID_TLV_LENGTH 0x02
@@ -15,7 +16,7 @@
#define LLDP_TTL_TLV_TYPE 3 #define LLDP_TTL_TLV_TYPE 3
#define LLDP_TTL_TLV_LENGTH 2 #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_TYPE 1
#define LLDP_CHASSIS_ID_TLV_LENGTH 7 #define LLDP_CHASSIS_ID_TLV_LENGTH 7