mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-11-01 18:04:12 +08:00
Merge pull request #587 from DrDoof/feat/lldp-tick
lldp: time the transmit interval from the system tick
This commit is contained in:
2 files changed
+15
-9
No files matched your search
+12
-7
@@ -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
@@ -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
|
||||
|
||||
Reference in new issue
Block a user