mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-19 08:25:28 +00:00
[ospfd] Ensure NSM state functions can redirect next_state accidently
2006-07-02 Paul Jakma <paul.jakma@sun.com> * ospf_nsm.c: (ospf_nsm_event) Don't allow action functions to change next_state if the NSM tables do not indicate next_state is conditional, log warning if one tries - existing code appears fine though.
This commit is contained in:
parent
d7b0fb62ec
commit
ba0beb4a84
@ -3,6 +3,10 @@
|
||||
* ospf_nsm.c: (nsm_should_adj) New function, just consolidate the
|
||||
10.4 adjacency check from nsm_twoway_received/nsm_adj_ok.
|
||||
(nsm_twoway_received/nsm_adj_ok) Use former.
|
||||
(ospf_nsm_event) Don't allow action functions to change
|
||||
next_state if the NSM tables do not indicate next_state is
|
||||
conditional, log warning if one tries - existing code
|
||||
appears fine though.
|
||||
|
||||
2006-06-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
|
||||
|
||||
|
@ -878,6 +878,22 @@ ospf_nsm_event (struct thread *thread)
|
||||
|
||||
if (! next_state)
|
||||
next_state = NSM [nbr->state][event].next_state;
|
||||
else if (NSM [nbr->state][event].next_state != NSM_DependUpon)
|
||||
{
|
||||
/* There's a mismatch between the FSM tables and what an FSM
|
||||
* action/state-change function returned. State changes which
|
||||
* do not have conditional/DependUpon next-states should not
|
||||
* try set next_state.
|
||||
*/
|
||||
zlog_warn ("NSM[%s:%s]: %s (%s): "
|
||||
"Warning: action tried to change next_state to %s",
|
||||
IF_NAME (oi), inet_ntoa (nbr->router_id),
|
||||
LOOKUP (ospf_nsm_state_msg, nbr->state),
|
||||
ospf_nsm_event_str [event],
|
||||
LOOKUP (ospf_nsm_state_msg, next_state));
|
||||
|
||||
next_state = NSM [nbr->state][event].next_state;
|
||||
}
|
||||
|
||||
if (IS_DEBUG_OSPF (nsm, NSM_EVENTS))
|
||||
zlog_debug ("NSM[%s:%s]: %s (%s)", IF_NAME (oi),
|
||||
|
Loading…
Reference in New Issue
Block a user