⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ospf_structures.h

📁 vxworks下ospf协议栈
💻 H
📖 第 1 页 / 共 5 页
字号:
/* ospf_structures.h - ospf structures*//* Copyright 2000-2003 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------03f,03jul03,ram     Backed out SPR#88600 workaround03e,11jun03,ram     SPR#88965 Separate route table and LSDB hash parameters03d,06jun03,kkz     Unpacked HELLO_HEADER structure (makes no difference - struct is naturally                    packed) and OSPF_ROUTER_LINK_ADVERTISEMENT_HEADER03c,26may03,agi    Removed RWOS-specific references03b,26may03,dsk    SPR 88600 fix for stuck in EXCHANGE_START (timer added                   to restart if stuck in exchange start state too long)03a,23may03,agi     Renamed OSPF watchdog, semaphores02z,22may03,dsk     SPR#88619 Fix early LSA retransmission02y,09may03,agi     Added OSPF tasks structures02y,08may03,asr     Changes to make OSPF virtual stack compatible02x,22apr03,ram     SPR#76812 Modifications for OSPF performance enhancements02w,29jan03,mwv     SPR 85893 added member ls_database_pending_delete to OSPF_LS_DATABASE_ENTRY02v,28jan03,ram     SPR 85050 Added support for external route redistribution based on                    OSPF external metric values02u,06jan03,ram     SPR 85432 Changes to allow more OSPF external route processing02t,09dec02,ram     SPR 83418 Added support for OSPF metric type and value configuration02s,24dec02,dsk     SPR#75194, ANVL 27.15 - added sptr_old_routing_table                    pointer to the ospf datastructure02s,20feb03,kc      Fixed SPR#86319 - rename inject_default_route_if_stub_area to                    inject_summary_lsa_into_stub_area in OSPF_AREA_ENTRY and                    OSPF_AREA_CONFIGURATION_CLASS structures.02q,09dec02,hme     Fixed SPR#75796 ANVL 37.102p,19nov02,mwv     Merge TMS code SPR 8428402o,05aug02,jkw     Fix TSR 28803002n,28jun02,kc      Fixed SPR 78381 - Added inject_default_route_if_stub_area to                    OSPF_AREA_ENTRY structure.02m,24may02,kc      Added ifnet_index and ifnet_flags to OSPF_INTERFACE structure.02l,23apr02,kc      Added number_of_stub_areas and number_of_nssa_areas counters                    to OSPF_CLASS. Removed unused bufPtr array from OSPF_CLASS.02k,13feb02,jkw     Remove preproc around structures. Possible alignment problems.02j,20dec01,jkw     Removed sptr_area->sptr_interfaces structure.02i,13dec01,kc      Removed unused mib_import_as_external from OSPF_AREA_ENTRY                    structure.02h,13nov01,jkw     Change number of address ranges to ULONG02g,25oct01,kc      Added area_id to OSPF_ADDRESS_RANGE_LIST_ENTRY.02f,13oct01,kc      Dynamic configuration changes.02e,29sep01,kc      Added interface_index in OSPF_INTERFACE structure.02d,29sep01,kc      Defined separate M_BLK_ID for OSPF_ADDR_ALLSPF and                    OSPF_ADDR_ALLDR in OSPF_INTERFACE structure.02c,22sep01,kc      Made sptr_interface linked list visible in OSPF_CLASS.02b,22aug01,jkw     Added opaque lsa structure changes.02a,13aug01,aos     Added new  tid member to OSPF class01z,23jul01,jkw     Added in changes for new UNION_OSPF_LS_ID structure01y,20jun01,jkw     Added unnumbered link support01x,21may01,jkw     Updated for point to point01w,11may01,aos     Added new ls_database_last_originated_time_stamp member to                    OSPF_LS_DATABASE_ENTRY01v,26sep00,reshma  Added WindRiver CopyRight01u,25sep00,reshma  RFC-1587 implementation for OSPF NSSA Option, also tested                    against ANVL.01t,20jul00,reshma  Unix compatibility related changes.01s,06jul00,reshma  Removed unnecessary header files and defines.01r,04apr00,reshma  Added some MIB support (Read only). Passed all important                    ANVL OSPF tests.01q,23dec99,reshma  Compatibility with VxWorks-IP and VxWorks RTM-interface01p,19may99,jack    redefined OSPF_PATRICIA_32_BITS_KEY_MAX_BIT_POSITION as per                    fixes in patricia01o,22jan99,jack    unpacked structs that shouldnt be packed01n,22jan99,jack    removed pack on three structures01m,28dec98,jack    Compiled and added some comments01l,03dec98,jack    Structure unpacking01k,13nov98,jack    Changes related to introducing queuing in OSPF to RTM interface                    and bug fix on the external route additions path (to RTM)01j,11nov98,jack    Config changes, linted and big endian changes01i,30oct98,jack    Incorporate changes for compilation on Vxworks01h,23aug98,jack    ANVL tested OSPF with PATRICIA tree route table and no recursion01g,10aug98,jack    PATRICIA Route Table Based OSPF Code Base01f,08jul98,jack    Patricia RT table related changes - need to be tested01e,04jun98,jack    Integration with RTM and BGP01d,10jul97,cindy   Pre-release v1.52b01c,10feb97,cindy   Release Version 1.5201b,22oct97,cindy   Release Version 1.5001a,05jun96,cindy   First Beta Release*//* includes */#include        <inetLib.h>#include        <net/if.h>#include        <netinet/ip.h>#include        <sys/socket.h>#include        <net/protosw.h>#include        <net/socketvar.h>#include	"ospf_container.h"/************************************************************************/#if !defined (_OSPF_STRUCTURES_H_)#define _OSPF_STRUCTURES_H_enum PROTOCOL_STACK_TYPE{    IP_PROTOCOL_STACK,    IPX_PROTOCOL_STACK,    SPANNING_TREE_STACK,    SOURCE_ROUTING_STACK,    NLSP_PROTOCOL_STACK,    DLSW_PROTOCOL_STACK,    OSPF_PROTOCOL_STACK,    APPLETALK_PROTOCOL_STACK,    NETBIOS_PROTOCOL_STACK,    VINES_PROTOCOL_STACK,    CONSOLE_PROTOCOL_STACK,    L2TP_PROTOCOL_STACK,    RTM_PROTOCOL_STACK,    PPTP_DATA_TUNNEL,    PPP_OVER_ETHERNET_PROTOCOL_STACK,    VPN_INTERFACE_VIRTUAL_PROTOCOL_STACK};enum PROTOCOL_CONTROL_OPERATION{    OPEN_PROTOCOL_STACK,    CLOSE_PROTOCOL_STACK,    GET_IP_ADDRESS_FOR_PORT,    IS_PROTOCOL_STACK_ENABLED = 0x0100,    GET_NUMBER_OF_PROTOCOL_STACKS_VIRTUAL_PORTS,    GET_PROTOCOL_STACK_TYPE,    GET_PROTOCOL_STACK_PROTOCOL_ID,    GET_PROTOCOL_STACK_SSAP,    GET_PROTOCOL_STACK_DSAP,    GET_PROTOCOL_STACK_VIRTUAL_PORT_PACKET_TYPE,    GET_PROTOCOL_STACK_REAL_PORT_NUMBER_USING_VIRTUAL_PORT_NUMBER,    INITIALIZE_SOCKET_PROTOCOL_STACK_INTERFACE,    IS_TOKEN_RING_FRAME_SOURCE_ROUTED,    IS_TOKEN_RING_FRAME_A_MAC,    GET_LENGTH_OF_TOKEN_RING_RIF,    CLEAR_SOURCE_ROUTED_BIT,    MOVE_RIF_INTO_PACKET,    IS_MAC_ADDRESS_SOURCE_ROUTED,    REGISTER_TO_IP_FROM_UPPER_LAYER,    INITIALIZE_STACK_FUNCTION_POINTERS,    INITIALIZE_PROTOCOL_FUNCTION_POINTERS,    GET_PROTOCOL_ADDRESS,    CLEAR_CACHED_ROUTE,    REINITIALIZE_PROTOCOL_STACK,    PROTOCOL_STACK_ROUTERWARE_CONTROL,    UNINITIALIZE_PROTOCOL_STACK,    PROTOCOL_ROUTE_ADDED,    PROTOCOL_ROUTE_DELETED,    PROTOCOL_ROUTE_CHANGED,    LLC_PROTOCOL_STACK,    REGISTER_NAT_FILTER = 200,    DEREGISTER_NAT_FILTER,    OPEN_PROTOCOL_STACK_PORT,    CLOSE_PROTOCOL_STACK_PORT,    ADD_IP_ADDRESS_AND_NETWORK_MASK_FOR_PORT,    ADD_REMOTE_IP_ADDRESS_FOR_PORT,    OPEN_VIRTUAL_PORT,    CLOSE_VIRTUAL_PORT,    REINITIALIZE_VIRTUAL_PORT,    UNINITIALIZE_VIRTUAL_PORT};enum LSL_PACKET_TYPE{    RAW_8023,    ETHERNET_TYPE_II,    LLC_PACKET,    SNAP_PACKET,    WAN_PACKET,    SAME_TYPE_AS_RX_PACKET_,    __ENUM_USHORT_FILLER_ = 0x1000};typedef struct OSPF_RETURN_TYPE{    enum OSPF_PACKET_STATE  packet_state;    BYTE_ENUM (BOOLEAN)     exit_routine;} OSPF_RETURN_TYPE;/* used for pointer manipulation when inserting and removing nodes in a list */typedef struct OSPF_GENERIC_NODE{    struct  OSPF_GENERIC_NODE   *sptr_forward_link;    struct  OSPF_GENERIC_NODE   *sptr_backward_link;} OSPF_GENERIC_NODE;/* used for pointer manipulation when inserting and removing nodes in a list */typedef struct OSPF_STACK_NODE{    struct  OSPF_STACK_NODE *sptr_forward_link;    struct  OSPF_STACK_NODE *sptr_backward_link;    void *vptr_data;} OSPF_STACK_NODE;#if (_BYTE_ORDER == _LITTLE_ENDIAN )typedef _struct OSPF_OPTIONS{    BIT_FIELD (enum,BOOLEAN)    tos:1;    BIT_FIELD (enum,BOOLEAN)    externals:1;    BIT_FIELD (enum,BOOLEAN)    multicast:1;    BIT_FIELD (enum,BOOLEAN)    nssa:1;    BIT_FIELD (enum,BOOLEAN)    dont_propagate:1;    /*opaque lsa new opaque option bit jkw*/    BIT_FIELD (enum,BOOLEAN)    demand_circuit:1;    BIT_FIELD (enum,BOOLEAN)    opaque:1;    BIT_FIELD (enum,BOOLEAN)    not_used:1;} _pack OSPF_OPTIONS;#else /* _BYTE_ORDER == _BIG_ENDIAN */typedef _struct OSPF_OPTIONS{    /*opaque lsa new opaque option bit jkw*/    BIT_FIELD (enum,BOOLEAN)    not_used:1;    BIT_FIELD (enum,BOOLEAN)    opaque:1;    BIT_FIELD (enum,BOOLEAN)    demand_circuit:1;    BIT_FIELD (enum,BOOLEAN)    dont_propagate:1;    BIT_FIELD (enum,BOOLEAN)    nssa:1;    BIT_FIELD (enum,BOOLEAN)    multicast:1;    BIT_FIELD (enum,BOOLEAN)    externals:1;    BIT_FIELD (enum,BOOLEAN)    tos:1;} _pack OSPF_OPTIONS;#endif /* _BYTE_ORDER == _LITTLE_ENDIAN */typedef _union  UNION_OSPF_OPTIONS{    OSPF_OPTIONS  _bit;    BYTE          _byte;} _pack UNION_OSPF_OPTIONS;#if (_BYTE_ORDER == _LITTLE_ENDIAN )typedef _struct OSPF_FLAGS{    BIT_FIELD (enum,BOOLEAN)    master:1;    BIT_FIELD (enum,BOOLEAN)    more:1;    BIT_FIELD (enum,BOOLEAN)    initialize:1;    BIT_FIELD (enum,BOOLEAN)    not_used:5;} _pack OSPF_FLAGS;#else /* _BYTE_ORDER == _BIG_ENDIAN */typedef _struct OSPF_FLAGS{    BIT_FIELD (enum,BOOLEAN)    not_used:5;    BIT_FIELD (enum,BOOLEAN)    initialize:1;    BIT_FIELD (enum,BOOLEAN)    more:1;    BIT_FIELD (enum,BOOLEAN)    master:1;} _pack OSPF_FLAGS;#endif /* _BYTE_ORDER == _LITTLE_ENDIAN */typedef _union  UNION_OSPF_FLAGS{    OSPF_FLAGS    _bit;    BYTE          _byte;} _pack UNION_OSPF_FLAGS;typedef _struct OSPF_MD5_AUTHENTICATION{    USHORT  offset;    BYTE    key_ID;    BYTE    authentication_data_length;    ULONG   cryptographic_sequence_number;} _pack OSPF_MD5_AUTHENTICATION;typedef _union  UNION_OSPF_AUTHENTICATION_FIELD{    BYTE  key_or_plain_text_passwd[OSPF_AUTHENTICATION_SIMPLE_SIZE];    OSPF_MD5_AUTHENTICATION md5;} _pack UNION_OSPF_AUTHENTICATION_FIELD;/*opaque lsa new opaque lsa header jkw*/typedef _struct OSPF_LS_ID{    BYTE    opaque_type;    BYTE    opaque_reserved;    USHORT  opaque_instance;} _pack OSPF_LS_ID;typedef _union UNION_OSPF_LS_ID{    OSPF_LS_ID      opaque_lsid;    ULONG           lsid;} _pack UNION_OSPF_LS_ID;typedef _struct OSPF_LS_OPAQUE_HEADER{    USHORT                    age;    UNION_OSPF_OPTIONS        options;    BYTE_ENUM (OSPF_LS_TYPE)  type;   /* Type of advertisement */    UNION_OSPF_LS_ID          id;     /* Link State Id */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -