81
µTasker general / Re: SNMP Traps not sending timely and/or locking up, appears to be ARP problem
« Last post by Ray on July 27, 2023, 09:30:49 PM »Hi Mark,
Well, I'm drilling down and feel I'm close to the root problem, I must be missing something important.
The ARP appeared to be contributing to the problem because it changed so frequently in my noisy environment.
Locking down the ARP to only required entries from requests seemed to solve the problem however, my system failed in the middle of the night. Modbus worked, SNMP GET worked, UDP broadcast worked. Everything but traps.
With another solid day of debugging with the simulator, I think I've reached a conclusion:
TASK_SNMP is not in the taskTable and unable to process the trap queue. extern void fnSNMP(TTASKTABLE *ptrTaskTable)
This is how the trap queue draws down, and resends when the message from ARP arrives. This task is never called.
I added //uTaskerStateChange(TASK_SNMP, UTASKER_ACTIVATE); to my period timer and it falied to find a TASK_SNMP entry
I tried to follow extern TASK_LIMIT uTaskerStart() these are the tasks it loaded
wdog
ARP
Eth
TCP
usb
O-MOD
app
maintenance
MassSt
DHCP
dNS
period
IGMP
NetInd
keeper
1
2
3
4
5 mine
6 mine
7 mine
8 mine
9 mine
lowPower
NULL
I'm not sure why SNMP doesn't get processed into the task array?
Well, I'm drilling down and feel I'm close to the root problem, I must be missing something important.
The ARP appeared to be contributing to the problem because it changed so frequently in my noisy environment.
Locking down the ARP to only required entries from requests seemed to solve the problem however, my system failed in the middle of the night. Modbus worked, SNMP GET worked, UDP broadcast worked. Everything but traps.
With another solid day of debugging with the simulator, I think I've reached a conclusion:
TASK_SNMP is not in the taskTable and unable to process the trap queue. extern void fnSNMP(TTASKTABLE *ptrTaskTable)
This is how the trap queue draws down, and resends when the message from ARP arrives. This task is never called.
I added //uTaskerStateChange(TASK_SNMP, UTASKER_ACTIVATE); to my period timer and it falied to find a TASK_SNMP entry
I tried to follow extern TASK_LIMIT uTaskerStart() these are the tasks it loaded
wdog
ARP
Eth
TCP
usb
O-MOD
app
maintenance
MassSt
DHCP
dNS
period
IGMP
NetInd
keeper
1
2
3
4
5 mine
6 mine
7 mine
8 mine
9 mine
lowPower
NULL
I'm not sure why SNMP doesn't get processed into the task array?
Recent Posts