371 lines
9.4 KiB
C
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_ */
|