Files
vxWorks/h/wrn/ospfv3/ospfv3InterfaceStateMachine.h
2025-08-20 18:25:46 +08:00

177 lines
5.9 KiB
C

/* ospfv3InterfaceStateMachine.h - OSPFv3 interface state machine header file */
/* Copyright 2004 Wind River Systems, Inc. */
#include "copyright_wrs.h"
/*
modification history
--------------------
01a,23oct02,agi written
*/
#ifndef __INCospfv3InterfaceStateMachineh
#define __INCospfv3InterfaceStateMachineh
#ifdef __cplusplus
extern "C" {
#endif
typedef void (*INTERFACE_TRANSITION_FUNCTION)
(OSPFV3_INTERFACE *sptr_interface);
typedef struct OSPFV3_INTERFACE_STATE_MACHINE
{
INTERFACE_TRANSITION_FUNCTION fptr_interface_transition_function;
} OSPFV3_INTERFACE_STATE_MACHINE;
OSPFV3_INTERFACE_STATE_MACHINE ospfv3_interface_event_processing_table
[OSPFV3_NUMBER_OF_INTERFACE_EVENTS][OSPFV3_NUMBER_OF_INTERFACE_STATES] =
{
/* -------------------------------------------------------------------------- */
/* OSPFV3_INTERFACE_UP 0 */
/* -------------------------------------------------------------------------- */
{
/* OSPFV3_INTERFACE_IS_DOWN */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_up_event},
/* OSPFV3_INTERFACE_LOOPBACK */
{NULL},
/* OSPFV3_INTERFACE_WAITING */
{NULL},
/* OSPFV3_INTERFACE_POINT_TO_POINT */
{NULL},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER_OTHER */
{NULL},
/* OSPFV3_INTERFACE_BACKUP_DESIGNATED_ROUTER */
{NULL},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER */
{NULL}
},
/* -------------------------------------------------------------------------- */
/* OSPFV3_WAIT_TIMER 1 */
/* -------------------------------------------------------------------------- */
{
/* OSPFV3_INTERFACE_IS_DOWN */
{NULL},
/* OSPFV3_INTERFACE_LOOPBACK */
{NULL},
/* OSPFV3_INTERFACE_WAITING */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_wait_timer_event},
/* OSPFV3_INTERFACE_POINT_TO_POINT */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_wait_timer_event},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER_OTHER */
{NULL},
/* OSPFV3_INTERFACE_BACKUP_DESIGNATED_ROUTER */
{NULL},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER */
{NULL}
},
/* -------------------------------------------------------------------------- */
/* OSPFV3_BACKUP_SEEN 2 */
/* -------------------------------------------------------------------------- */
{
/* OSPFV3_INTERFACE_IS_DOWN */
{NULL},
/* OSPFV3_INTERFACE_LOOPBACK */
{NULL},
/* OSPFV3_INTERFACE_WAITING */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_backup_seen_event},
/* OSPFV3_INTERFACE_POINT_TO_POINT */
{NULL},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER_OTHER */
{NULL},
/* OSPFV3_INTERFACE_BACKUP_DESIGNATED_ROUTER */
{NULL},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER */
{NULL}
},
/* -------------------------------------------------------------------------- */
/* OSPFV3_NEIGHBOR_CHANGE 3 */
/* -------------------------------------------------------------------------- */
{
/* OSPFV3_INTERFACE_IS_DOWN */
{NULL},
/* OSPFV3_INTERFACE_LOOPBACK */
{NULL},
/* OSPFV3_INTERFACE_WAITING */
{NULL},
/* OSPFV3_INTERFACE_POINT_TO_POINT */
{NULL},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER_OTHER */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_neighbor_change_event},
/* OSPFV3_INTERFACE_BACKUP_DESIGNATED_ROUTER */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_neighbor_change_event},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_neighbor_change_event}
},
/* -------------------------------------------------------------------------- */
/* OSPFV3_LOOP_INDICATION 4 */
/* -------------------------------------------------------------------------- */
{
/* OSPFV3_INTERFACE_IS_DOWN */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_loop_indication_event},
/* OSPFV3_INTERFACE_LOOPBACK */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_loop_indication_event},
/* OSPFV3_INTERFACE_WAITING */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_loop_indication_event},
/* OSPFV3_INTERFACE_POINT_TO_POINT */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_loop_indication_event},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER_OTHER */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_loop_indication_event},
/* OSPFV3_INTERFACE_BACKUP_DESIGNATED_ROUTER */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_loop_indication_event},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_loop_indication_event}
},
/* -------------------------------------------------------------------------- */
/* OSPFV3_UNLOOP_INDICATION 5 */
/* -------------------------------------------------------------------------- */
{
/* OSPFV3_INTERFACE_IS_DOWN */
{NULL},
/* OSPFV3_INTERFACE_LOOPBACK */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_unloop_indication_event},
/* OSPFV3_INTERFACE_WAITING */
{NULL},
/* OSPFV3_INTERFACE_POINT_TO_POINT */
{NULL},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER_OTHER */
{NULL},
/* OSPFV3_INTERFACE_BACKUP_DESIGNATED_ROUTER */
{NULL},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER */
{NULL}
},
/* -------------------------------------------------------------------------- */
/* OSPFV3_INTERFACE_DOWN 6 */
/* -------------------------------------------------------------------------- */
{
/* OSPFV3_INTERFACE_IS_DOWN */
{NULL},
/* OSPFV3_INTERFACE_LOOPBACK */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_down_event},
/* OSPFV3_INTERFACE_WAITING */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_down_event},
/* OSPFV3_INTERFACE_POINT_TO_POINT */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_down_event},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER_OTHER */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_down_event},
/* OSPFV3_INTERFACE_BACKUP_DESIGNATED_ROUTER */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_down_event},
/* OSPFV3_INTERFACE_DESIGNATED_ROUTER */
{(INTERFACE_TRANSITION_FUNCTION) ospfv3_process_interface_down_event}
}
};
#ifdef __cplusplus
}
#endif
#endif /* __INCospfv3InterfaceStateMachineh */