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 __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
@@ -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
|
||||||
|
|||||||
Reference in new issue
Block a user