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

371 lines
9.4 KiB
C

/* ospf_enums.h - OSPF enums */
/* Copyright 2000-2003 Wind River Systems, Inc. */
#include "copyright_wrs.h"
/*
modification history
--------------------
03b,01dec03,agi removed declaration of MD4 and MD5
03a,27sep03,agi ported to Accordion stack, added definitions from RTM,
updated copyright
02d,29may03,agi added OSPF_MD_ALGORITHM
02c,27may03,agi removed the SPF task, added code inspection changes
02b,09may03,agi added OSPF tasks related enums
02a,22apr03,ram SPR#76812 Modifications for OSPF performance enhancements
01a,05jun96,cin First Beta Release
*/
#if !defined (_OSPF_ENUMS_H_)
#define _OSPF_ENUMS_H_
enum OSPF_RETURN_FLAGS
{
OSPF_NO_PROBLEM = 0x0,
OSPF_NO_BUFFERS = 0x1,
OSPF_BAD_REQUEST = 0x2
};
enum OSPF_UNION_PACKET_TYPES
{
OSPF_HELLO_PACKET = 0x01,
OSPF_DATABASE_DESCRIPTION_PACKET = 0x02,
OSPF_LINK_STATE_REQUEST_PACKET = 0x03,
OSPF_LINK_STATE_UPDATE_PACKET = 0x04,
OSPF_LINK_STATE_ACKNOWLEDGEMENT_PACKET = 0x05
};
enum OSPF_PACKET_STATE
{
GOOD_RECEIVE = 0x00,
OSPF_ERROR_ACKNOWLEDGEMENT_BAD = 0x01,
OSPF_ERROR_ACKNOWLEDGEMENT_DUPLICATE = 0x02,
OSPF_ERROR_ACKNOWLEDGEMENT_STATE = 0x03,
OSPF_ERROR_ACKNOWLEDGEMENT_TYPE = 0x04,
OSPF_ERROR_DATABASE_DESCRIPTION_E_BIT = 0x05,
OSPF_ERROR_DATABASE_DESCRIPTION_ROUTER_ID = 0x06,
OSPF_ERROR_DATABASE_DESCRIPTION_STATE = 0x07,
OSPF_ERROR_DATABASE_DESCRIPTION_TYPE = 0x08,
OSPF_ERROR_HELLO_E_BIT = 0x09,
OSPF_ERROR_HELLO_ID = 0x0a,
OSPF_ERROR_HELLO_MASK = 0x0b,
OSPF_ERROR_HELLO_ROUTER_DEAD_INTERVAL = 0x0c,
OSPF_ERROR_HELLO_TIMER = 0x0d,
OSPF_ERROR_HELLO_VIRTUAL = 0x0e,
OSPF_ERROR_OSPF_AUTHENTICATION_KEY = 0x0f,
OSPF_ERROR_OSPF_AUTHENTICATION_TYPE = 0x10,
OSPF_ERROR_OSPF_INTERFACE_DOWN = 0x11,
OSPF_ERROR_OSPF_PACKET_TYPE = 0x12,
OSPF_ERROR_REQUEST_BOGUS = 0x13,
OSPF_ERROR_REQUEST_EMPTY = 0x14,
OSPF_ERROR_UPDATE_STATE = 0x15,
STOP_PROCESSING_PACKET = 0x16,
/* nssa bit */
OSPF_ERROR_HELLO_N_BIT = 0x17,
OSPF_ERROR_DATABASE_DESCRIPTION_N_BIT = 0x18,
/*opaque lsa error option jkw*/
OSPF_ERROR_OPAQUE_OPTION = 0x19,
OSPF_ERROR_DATABASE_DESCRIPTION_MTU_MISMATCH = 0x1a
};
enum OSPF_NEIGHBOR_EVENT
{
OSPF_HELLO_RECEIVED = 0x0000,
OSPF_START = 0x01,
OSPF_TWO_WAY_RECEIVED = 0x02,
OSPF_NEGOTIATION_DONE = 0x03,
OSPF_EXCHANGE_DONE = 0x04,
OSPF_BAD_LINK_STATE_REQUEST = 0x05,
OSPF_LOADING_DONE = 0x06,
OSPF_ADJACENCY_OK = 0x07,
OSPF_SEQUENCE_NUMBER_MISMATCH = 0x08,
OSPF_ONE_WAY = 0x09,
OSPF_KILL_NEIGHBOR = 0x0a,
OSPF_INACTIVITY_TIMER = 0x0b,
OSPF_DOWN_INDICATION_FROM_LOWER_LEVEL_PROTOCOLS_RECEIVED = 0x0c
};
enum OSPF_NEIGHBOR_MODE
{
OSPF_CLEAR_MODE = 0x00,
OSPF_SLAVE = 0x01,
OSPF_MASTER = 0x02,
OSPF_SLAVE_HOLD = 0x04 /* holding the last database summary delay */
};
enum OSPF_NEIGHBOR_STATE
{
OSPF_NEIGHBOR_DOWN = 0x00,
OSPF_NEIGHBOR_ATTEMPT = 0x01,
OSPF_NEIGHBOR_INITIALIZING = 0x02,
OSPF_NEIGHBOR_2_WAY = 0x03,
OSPF_NEIGHBOR_EXCHANGE_START = 0x04,
OSPF_NEIGHBOR_EXCHANGE = 0x05,
OSPF_NEIGHBOR_LOADING = 0x06,
OSPF_NEIGHBOR_FULL = 0x07
};
enum OSPF_INTERFACE_EVENT
{
OSPF_INTERFACE_UP = 0x00,
OSPF_WAIT_TIMER = 0x01,
OSPF_BACKUP_SEEN = 0x02,
OSPF_NEIGHBOR_CHANGE = 0x03,
OSPF_LOOP_INDICATION = 0x04,
OSPF_UNLOOP_INDICATION = 0x05,
OSPF_INTERFACE_DOWN = 0x06
};
enum OSPF_INTERFACE_STATE
{
OSPF_INTERFACE_IS_DOWN = 0x00,
OSPF_INTERFACE_LOOPBACK = 0x01,
OSPF_INTERFACE_WAITING = 0x02,
OSPF_INTERFACE_POINT_TO_POINT = 0x03,
OSPF_INTERFACE_DESIGNATED_ROUTER_OTHER = 0x04,
OSPF_INTERFACE_BACKUP_DESIGNATED_ROUTER = 0x05,
OSPF_INTERFACE_DESIGNATED_ROUTER = 0x06
};
enum OSPF_INTERFACE_TYPE
{
OSPF_POINT_TO_POINT = 0x01,
OSPF_BROADCAST = 0x02,
OSPF_NBMA = 0x03,
OSPF_POINT_TO_MULTIPOINT = 0x04,
OSPF_VIRTUAL_LINK = 0x05
};
enum OSPF_SEQUENCE_STATE
{
OSPF_NORMAL = 0x00,
OSPF_WAITING_FOR_MAXIMUM_SEQUENCE_INSTANCE_TO_BE_FLUSHED = 0x01,
OSPF_DONE_FLUSHING_MAXIMUM_SEQUENCE_INSTANCE = 0x02
};
/* Link State Types */
enum OSPF_LS_TYPE
{
OSPF_LS_ROUTER = 0x01,
OSPF_LS_NETWORK = 0x02,
OSPF_LS_SUMMARY_NETWORK = 0x03,
OSPF_LS_SUMMARY_AS_BOUNDARY_ROUTER = 0x04,
OSPF_LS_AS_EXTERNAL = 0x05,
/* Interpretation flags in LS_ROUTER for Routers convenience */
#if defined (__NSSA__)
OSPF_LS_MULTICAST = 0x06,
OSPF_LS_TYPE_7 = 0x07,
#endif /* __NSSA__ */
/*opaque lsa new lsa types jkw*/
#if defined (__OPAQUE_LSA__)
OSPF_LS_TYPE_9 = 0x09,
OSPF_LS_TYPE_10 = 0x0a,
OSPF_LS_TYPE_11 = 0x0b,
OSPF_LS_MAX = 0x0c,
#else /* __OPAQUE_LSA__ */
OSPF_LS_MAX = 0x08,
#endif /* __OPAQUE_LSA__ */
OSPF_LS_ROUTER_ABR = 0x0d,
OSPF_LS_ROUTER_ASBR = 0x0e
};
enum OSPF_ROUTER_LINK_TYPE
{
OSPF_ROUTER_LINK_TYPE_PPP = 0x1,
OSPF_ROUTER_LINK_TYPE_TRANSIT_NETWORK = 0x2,
OSPF_ROUTER_LINK_TYPE_STUB_NETWORK = 0x3,
OSPF_ROUTER_LINK_TYPE_VIRTUAL = 0x4
};
enum OSPF_ACKNOWLEDGEMENT_RETURN_TYPE
{
OSPF_NO_ACKNOWLEDGEMENTS_LEFT = 0x00,
OSPF_ACKNOWLEDGEMENTS_LEFT = 0x01
};
enum OSPF_ROUTING_TABLE_UPDATE_ACTION
{
OSPF_NO_ACTION = 0x00,
OSPF_CHANGE_PATH = 0x01,
OSPF_ADD_PATH = 0x02,
OSPF_DELETE_PATH = 0x03 /* RTM ### changes */
};
enum OSPF_ROUTE_STATUS
{
/* No new data under a routing table node or next_hop_block */
OSPF_ROUTE_IS_NOT_NEW = 0x00,
/*
* New data under a routing table node or next_hop_block.
* can be a new next hop block under a routing table node or a new routing table node.
* or an old next hop block is not available any more.
*/
OSPF_ROUTE_IS_NEW = 0x01,
/*
* This routing table node or next block is no longer available
*/
OSPF_ROUTE_IS_NOT_AVAILABLE_NOW = 0x02,
/*
* doesn't matter
*/
OSPF_ROUTE_STATUS_DONT_CARE = 0x03
};
enum OSPF_ROUTE_DESTINATION_TYPE
{
OSPF_DESTINATION_TYPE_NETWORK = 0x00,
OSPF_DESTINATION_TYPE_ASBR = 0x01, /* autonomous system border router */
OSPF_DESTINATION_TYPE_ABR = 0x02, /* area border router */
OSPF_DESTINATION_TYPE_VIRTUAL = 0x03,
OSPF_DESTINATION_TYPE_ASE = 0x04, /* external to the autonomous system */
OSPF_DESTINATION_TYPE_WILDCARD = 0xFF
};
enum OSPF_ROUTE_PATH_TYPE
{
OSPF_ROUTE_PATH_TYPE_INTRA = 0x00,
OSPF_ROUTE_PATH_TYPE_INTER = 0x01,
OSPF_ROUTE_PATH_TYPE_1_EXTERNAL = 0x02,
OSPF_ROUTE_PATH_TYPE_2_EXTERNAL = 0x03,
OSPF_ROUTE_PATH_TYPE_WILDCARD = 0xFF
};
enum OSPF_COUNTER_ACTION_TYPE
{
OSPF_INCREMENT_COUNTERS = 0x0,
OSPF_DECREMENT_COUNTERS = 0x1
};
enum OSPF_PRINTF_GROUPS
{
OSPF_INTERFACE_PRINTF = 0x0,
OSPF_NEIGHBOR_PRINTF = 0x1,
OSPF_MEMORY_PRINTF = 0x2,
OSPF_ALARM_PRINTF = 0x3,
OSPF_SNMP_PRINTF = 0x4,
OSPF_PACKET_PRINTF = 0x5,
OSPF_ROUTING_TABLE_PRINTF = 0x6,
OSPF_DEBUG_PRINTF = 0x7,
OSPF_RTM_PRINTF = 0x08,
OSPF_PATRICIA_DEBUG_PRINTF = 0x09,
OSPF_DB_OVERFLOW_PRINTF = 0x0A,
OSPF_SEARCH_PRINTF = 0x0B,
OSPF_PROLOGUE_PRINTF = 0x0C
};
enum OSPF_SEARCH_TYPE
{
OSPF_SEARCH_LSA_TYPE = 0x01,
OSPF_SEARCH_LSA_ID = 0x02,
OSPF_SEARCH_ADVERTISING_ROUTER = 0x03
};
enum OSPF_MODE
{
PASSIVE = 0x00,
ACTIVE = 0x01
};
typedef signed long seq_t; /* signed 32 bit number */
typedef enum
{
OSPFINVALDLSSEQ = 0x80000000L, /* Invalid LS sequence number (reserved or unused) */
OSPFINITLSSEQ = 0x80000001L, /* Initial LS Sequence value */
OSPFMAXLSSEQ = 0x7fffffffL, /* Maximum LS Sequence value */
OSPFLSINVALID = 0x80000000L /* Invalid LS Sequence value */
} SEQNO_T;
/* SPR#76812 */
/* used for routing table indexing*/
enum OSPF_ROUTE_TABLE_TYPE
{
OSPF_ROUTE_TABLE_NETWORK = 0x00,
OSPF_ROUTE_TABLE_ROUTER = 0x01,
OSPF_ROUTE_TABLE_MAX = 0x02
};
typedef enum
{
OSPF_TASK_STATE_NOT_CREATED = 0,
OSPF_TASK_STATE_CREATED,
OSPF_TASK_STATE_INIT_COMPLETE,
OSPF_TASK_STATE_RUNNING
} OSPF_TASK_STATES;
typedef enum
{
OSPF_TASK_TIMER,
OSPF_TASK_HELLO_TIMER,
OSPF_TASK_INPUT,
OSPF_TASK_RTM,
OSPF_NUM_TASKS
} OSPF_TASKS;
enum OSPF_RTM_ROUTE_PROTOCOL_FAMILY
{
OSPF_RTM_IP = 0x01,
OSPF_RTM_IPX = 0x02
};
enum OSPF_RTM_IP_ROUTE_TYPE
{
OSPF_RTM_OTHER_ROUTE_TYPE = 0x01, /* none of the following */
OSPF_RTM_INVALID_ROUTE_TYPE = 0x02, /* an invalidated route */
OSPF_RTM_DIRECT_ROUTE_TYPE = 0x03, /* route to directly connected (sub-)network */
OSPF_RTM_INDIRECT_ROUTE_TYPE = 0x04 /* route to a non-local host/network/sub-network */
};
enum OSPF_RTM_IP_PROTOCOL_VALUE
{
OSPF_RTM_RESERVED_PROTOCOL = 0,
OSPF_RTM_ICMP_PROTOCOL = 1,
OSPF_RTM_IGMP_PROTOCOL = 2,
OSPF_RTM_IP_PROTOCOL = 4,
OSPF_RTM_TCP_PROTOCOL = 6,
OSPF_RTM_IGP_PROTOCOL = 9,
OSPF_RTM_UDP_PROTOCOL = 17,
OSPF_RTM_IDRP_PROTOCOL = 45,
OSPF_RTM_RSVP_PROTOCOL = 46,
OSPF_RTM_GRE_PROTOCOL = 47,
OSPF_RTM_IPSEC_ESP_PROTOCOL = 50,
OSPF_RTM_IPSEC_AH_PROTOCOL = 51,
OSPF_RTM_IGRP_PROTOCOL = 88,
OSPF_RTM_OSPF_PROTOCOL = 89,
OSPF_RTM_IPIP_PROTOCOL = 94,
OSPF_RTM_ETHERIP_PROTOCOL = 97
};
enum OSPF_RTM_IP_ROUTE_PROTOCOL_TYPE
{
OSPF_RTM_OTHER_ROUTING_PROTOCOL_TYPE = 0x01,
OSPF_RTM_IP_ROUTING_PROTOCOL_TYPE = 0x01, /* RTM_IP_ROUTING_PROTOCOL_TYPE in intentionally defined as 1 as well */
OSPF_RTM_LOCALLY_CONFIGURED_TYPE = 0x02,
OSPF_RTM_NETWORK_MANAGEMENT_PROTOCOL_TYPE = 0x03,
OSPF_RTM_ICMP_PROTOCOL_TYPE = 0x04,
OSPF_RTM_EGP_PROTOCOL_TYPE = 0x05,
OSPF_RTM_GGP_PROTOCOL_TYPE = 0x06,
OSPF_RTM_HELLO_PROTOCOL_TYPE = 0x07,
OSPF_RTM_RIP_PROTOCOL_TYPE = 0x08,
OSPF_RTM_IS_IS_PROTOCOL_TYPE = 0x09,
OSPF_RTM_ES_IS_PROTOCOL_TYPE = 0x0a,
OSPF_RTM_CISCO_IGRP_TYPE = 0x0b,
OSPF_RTM_BBN_SPF_IGP_TYPE = 0x0c,
OSPF_RTM_OSPF_PROTOCOL_TYPE = 0x0d,
OSPF_RTM_BGP_PROTOCOL_TYPE = 0x0e
};
enum OSPF_RTM_IP_ROUTE_OPERATION
{
OSPF_RTM_ADD_IP_ROUTE = 0x01,
OSPF_RTM_DELETE_IP_ROUTE = 0x02
};
#endif /* _OSPF_ENUMS_H_ */