156 lines
4.2 KiB
C
156 lines
4.2 KiB
C
#ifndef __OSPFCFG_H__
|
|
#define __OSPFCFG_H__
|
|
|
|
// ospf_cfg.h
|
|
|
|
|
|
// structure types
|
|
|
|
#define OSPF_END_PARAM_TYPE 0
|
|
#define OSPF_GLOBAL_PARAM_TYPE 1
|
|
#define OSPF_AREA_PARAM_TYPE 2
|
|
#define OSPF_AREA_RANGE_PARAM_TYPE 3
|
|
#define OSPF_INTF_PARAM_TYPE 4
|
|
#define OSPF_NEIGHBOR_PARAM_TYPE 5
|
|
#define OSPF_VIRT_INTF_PARAM_TYPE 6
|
|
#define OSPF_ROUTE_FILTER_PARAM_TYPE 7
|
|
#define OSPF_PROTOCOL_FILTER_PARAM_TYPE 8
|
|
|
|
#define OSPF_LOGGING_NONE ((DWORD) 0)
|
|
#define OSPF_LOGGING_ERROR ((DWORD) 1)
|
|
#define OSPF_LOGGING_WARN ((DWORD) 2)
|
|
#define OSPF_LOGGING_INFO ((DWORD) 3)
|
|
|
|
#define OSPF_LOGGING_MAX_VALUE OSPF_LOGGING_INFO
|
|
#define OSPF_LOGGING_MIN_VALUE OSPF_LOGGING_NONE
|
|
#define OSPF_LOGGING_DEFAULT OSPF_LOGGING_WARN
|
|
|
|
// Global Parameters
|
|
typedef struct _OSPF_GLOBAL_PARAM
|
|
{
|
|
DWORD type; // OSPF_GLOBAL_PARAM_TYPE
|
|
DWORD create; // 1 = created, 2 = deleted
|
|
DWORD enable; // 1 = enable, 2 = disable
|
|
DWORD routerId;
|
|
DWORD ASBrdrRtr; // 1 = yes, 2 = no
|
|
DWORD logLevel; // One of the above
|
|
}OSPF_GLOBAL_PARAM, *POSPF_GLOBAL_PARAM;
|
|
|
|
|
|
// Area Parameters
|
|
|
|
typedef struct _OSPF_AREA_PARAM
|
|
{
|
|
DWORD type; // OSPF_AREA_PARAM_TYPE
|
|
DWORD create; // 1 = created, 2 = deleted
|
|
DWORD enable; // 1 = enable, 2 = disable
|
|
DWORD areaId;
|
|
DWORD authType; // 1 = none, 2 = simple password
|
|
DWORD importASExtern; // 1 = yes, 2 = no
|
|
DWORD stubMetric;
|
|
DWORD importSumAdv; // 1 = yes, 2 = no
|
|
}OSPF_AREA_PARAM, *POSPF_AREA_PARAM;
|
|
|
|
|
|
// Area Range Parameters
|
|
|
|
typedef struct _OSPF_AREA_RANGE_PARAM
|
|
{
|
|
DWORD type; // OSPF_AREA_RANGE_PARAM_TYPE
|
|
DWORD create; // 1 = created, 2 = deleted
|
|
DWORD enable; // 1 = enable, 2 = disable
|
|
DWORD areaId;
|
|
DWORD rangeNet;
|
|
DWORD rangeMask;
|
|
}OSPF_AREA_RANGE_PARAM, *POSPF_AREA_RANGE_PARAM;
|
|
|
|
// Interface Parameters
|
|
|
|
typedef struct _OSPF_INTERFACE_PARAM
|
|
{
|
|
DWORD type; // OSPF_INTF_PARAM_TYPE
|
|
DWORD create; // 1 = created, 2 = deleted
|
|
DWORD enable; // 1 = enable, 2 = disable
|
|
DWORD intfIpAddr;
|
|
DWORD intfSubnetMask;
|
|
DWORD areaId;
|
|
DWORD intfType; // 1 = broadcast, 2 = NBMA,
|
|
// 3 = point-to-point
|
|
DWORD routerPriority;
|
|
DWORD transitDelay;
|
|
DWORD retransInterval;
|
|
DWORD helloInterval;
|
|
DWORD deadInterval;
|
|
DWORD pollInterval;
|
|
DWORD metricCost;
|
|
BYTE password[8];
|
|
DWORD mtuSize;
|
|
}OSPF_INTERFACE_PARAM, *POSPF_INTERFACE_PARAM;
|
|
|
|
|
|
// NBMA Neighbor Parameters
|
|
|
|
typedef struct _OSPF_NBMA_NEIGHBOR_PARAM
|
|
{
|
|
DWORD type; // OSPF_NEIGHBOR_PARAM_TYPE
|
|
DWORD create; // 1 = created, 2 = deleted
|
|
DWORD enable; // 1 = enable, 2 = disable
|
|
DWORD neighborIpAddr;
|
|
DWORD intfIpAddr;
|
|
DWORD neighborPriority;
|
|
}OSPF_NBMA_NEIGHBOR_PARAM, *POSPF_NBMA_NEIGHBOR_PARAM;
|
|
|
|
|
|
// Virtual Interface Parameters
|
|
|
|
typedef struct _OSPF_VIRT_INTERFACE_PARAM
|
|
{
|
|
DWORD type; // OSPF_VIRT_INTF_PARAM_TYPE
|
|
DWORD create; // 1 = created, 2 = deleted
|
|
DWORD enable; // 1 = enable, 2 = disable
|
|
DWORD transitAreaId;
|
|
DWORD virtNeighborRouterId;
|
|
DWORD transitDelay;
|
|
DWORD retransInterval;
|
|
DWORD helloInterval;
|
|
DWORD deadInterval;
|
|
BYTE password[8];
|
|
}OSPF_VIRT_INTERFACE_PARAM, *POSPF_VIRT_INTERFACE_PARAM;
|
|
|
|
typedef struct _OSPF_ROUTE_FILTER
|
|
{
|
|
DWORD dwAddress;
|
|
DWORD dwMask;
|
|
}OSPF_ROUTE_FILTER, *POSPF_ROUTE_FILTER;
|
|
|
|
typedef enum _OSPF_FILTER_ACTION
|
|
{
|
|
ACTION_DROP = 0,
|
|
ACTION_ACCEPT = 1
|
|
}OSPF_FILTER_ACTION, *POSPF_FILTER_ACTION;
|
|
|
|
typedef struct _OSPF_ROUTE_FILTER_INFO
|
|
{
|
|
DWORD type;
|
|
OSPF_FILTER_ACTION ofaActionOnMatch;
|
|
DWORD dwNumFilters;
|
|
OSPF_ROUTE_FILTER pFilters[1];
|
|
}OSPF_ROUTE_FILTER_INFO, *POSPF_ROUTE_FILTER_INFO;
|
|
|
|
#define SIZEOF_OSPF_ROUTE_FILTERS(X) \
|
|
(FIELD_OFFSET(OSPF_ROUTE_FILTER_INFO, pFilters[0]) + ((X) * sizeof(OSPF_ROUTE_FILTER)))
|
|
|
|
typedef struct _OSPF_PROTO_FILTER_INFO
|
|
{
|
|
DWORD type;
|
|
OSPF_FILTER_ACTION ofaActionOnMatch;
|
|
DWORD dwNumFilters;
|
|
DWORD pdwProtoId[1];
|
|
}OSPF_PROTO_FILTER_INFO, *POSPF_PROTO_FILTER_INFO;
|
|
|
|
#define SIZEOF_OSPF_PROTO_FILTERS(X) \
|
|
(FIELD_OFFSET(OSPF_PROTO_FILTER_INFO, pdwProtoId[0]) + ((X) * sizeof(DWORD)))
|
|
|
|
|
|
#endif //__OSPFCFG_H__
|