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

📄 atm.h

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/*
 * atm.h
 *
 * ATM support
 *
 * This file is part of the w32api package.
 *
 * Contributors:
 *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
 *
 * THIS SOFTWARE IS NOT COPYRIGHTED
 *
 * This source code is offered for use in the public domain. You may
 * use, modify or distribute it freely.
 *
 * This code is distributed in the hope that it will be useful but
 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
 * DISCLAIMED. This includes but is not limited to warranties of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 */

#ifndef __ATM_H
#define __ATM_H

#if __GNUC__ >=3
#pragma GCC system_header
#endif

#ifdef __cplusplus
extern "C" {
#endif

typedef ULONG	ATM_ADDRESSTYPE;

#define SAP_TYPE_NSAP			                1
#define SAP_TYPE_E164			                2

#define ATM_MEDIA_SPECIFIC                1

#define CALLMGR_SPECIFIC_Q2931            1

#define	ATM_NSAP				                  0
#define	ATM_E164				                  1

#define	ATM_MAC_ADDRESS_LENGTH	          6
#define	ATM_ADDRESS_LENGTH		            20

typedef ULONG	ATM_AAL_TYPE, *PATM_AAL_TYPE;

#define	AAL_TYPE_AAL0			                1
#define	AAL_TYPE_AAL1			                2
#define	AAL_TYPE_AAL34			              4
#define	AAL_TYPE_AAL5			                8

#define ATM_ADDR_BLANK_CHAR				        L' '
#define ATM_ADDR_E164_START_CHAR		      L'+'
#define ATM_ADDR_PUNCTUATION_CHAR		      L'.'

typedef enum {
	IE_AALParameters,
	IE_TrafficDescriptor,
	IE_BroadbandBearerCapability,
	IE_BHLI,
	IE_BLLI,
	IE_CalledPartyNumber,
	IE_CalledPartySubaddress,
	IE_CallingPartyNumber,
	IE_CallingPartySubaddress,
	IE_Cause,
	IE_QOSClass,
	IE_TransitNetworkSelection,
	IE_BroadbandSendingComplete,
	IE_LIJCallId,
	IE_Raw
} Q2931_IE_TYPE;

typedef struct _Q2931_IE {
  Q2931_IE_TYPE  IEType;
  ULONG  IELength;
  UCHAR  IE[1];
} Q2931_IE, *PQ2931_IE;

typedef struct _AAL1_PARAMETERS {
  UCHAR  Subtype;
  UCHAR  CBRRate;
  USHORT  Multiplier;
  UCHAR  SourceClockRecoveryMethod;
  UCHAR  ErrorCorrectionMethod;
  USHORT  StructuredDataTransferBlocksize;
  UCHAR  PartiallyFilledCellsMethod;
} AAL1_PARAMETERS, *PAAL1_PARAMETERS;

typedef struct _AAL34_PARAMETERS {
  USHORT  ForwardMaxCPCSSDUSize;
  USHORT  BackwardMaxCPCSSDUSize;
  USHORT  LowestMID;
  USHORT  HighestMID;
  UCHAR  SSCSType;
} AAL34_PARAMETERS, *PAAL34_PARAMETERS;

/* AAL5_PARAMETERS.Mode constants */
#define AAL5_MODE_MESSAGE			            0x01
#define AAL5_MODE_STREAMING			          0x02

/* AAL5_PARAMETERS.SSCSType constants */
#define AAL5_SSCS_NULL				            0x00
#define AAL5_SSCS_SSCOP_ASSURED		        0x01
#define AAL5_SSCS_SSCOP_NON_ASSURED	      0x02
#define AAL5_SSCS_FRAME_RELAY		          0x04

typedef struct _AAL5_PARAMETERS {
  ULONG  ForwardMaxCPCSSDUSize;
  ULONG  BackwardMaxCPCSSDUSize;
  UCHAR  Mode;
  UCHAR  SSCSType;
} AAL5_PARAMETERS, *PAAL5_PARAMETERS;

typedef struct _AALUSER_PARAMETERS {
  ULONG  UserDefined;
} AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;

typedef struct _AAL_PARAMETERS_IE {
  ATM_AAL_TYPE  AALType;
  union {
    AAL1_PARAMETERS  AAL1Parameters;
    AAL34_PARAMETERS  AAL34Parameters;
    AAL5_PARAMETERS  AAL5Parameters;
    AALUSER_PARAMETERS  AALUserParameters;
  } AALSpecificParameters;
} AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;


/* FIXME: Should the union be anonymous in C++ too?  If so,
   can't define named types _ATM_AAL5_INFO and _ATM_AAL0_INFO
   within anonymous union for C++. */
typedef struct _ATM_AAL_OOB_INFO
{
	ATM_AAL_TYPE  AalType;
#ifndef __cplusplus
	_ANONYMOUS_UNION
#endif
	union {
		struct _ATM_AAL5_INFO {
			BOOLEAN  CellLossPriority;
			UCHAR  UserToUserIndication;
			UCHAR  CommonPartIndicator;
		} ATM_AAL5_INFO;
		
		struct _ATM_AAL0_INFO {
			BOOLEAN  CellLossPriority;
			UCHAR  PayLoadTypeIdentifier;
		} ATM_AAL0_INFO;
#ifndef __cplusplus
	} DUMMYUNIONNAME;
#else
	} u;
#endif
} ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;

typedef struct _ATM_ADDRESS  { 
  ATM_ADDRESSTYPE  AddressType; 
  ULONG  NumberOfDigits; 
  UCHAR  Address[ATM_ADDRESS_LENGTH]; 
} ATM_ADDRESS, *PATM_ADDRESS;

/* ATM_BHLI_IE.HighLayerInfoType constants */
#define BHLI_ISO				                  0x00
#define BHLI_UserSpecific		              0x01
#define BHLI_HighLayerProfile	            0x02
#define BHLI_VendorSpecificAppId          0x03

typedef struct _ATM_BHLI_IE {
  ULONG  HighLayerInfoType;
  ULONG  HighLayerInfoLength;
  UCHAR  HighLayerInfo[8];
} ATM_BHLI_IE, *PATM_BHLI_IE;

/* ATM_BLLI_IE.Layer2Protocol constants */
#define BLLI_L2_ISO_1745		              0x01
#define BLLI_L2_Q921			                0x02
#define BLLI_L2_X25L			                0x06
#define BLLI_L2_X25M			                0x07
#define BLLI_L2_ELAPB			                0x08
#define BLLI_L2_HDLC_ARM		              0x09
#define BLLI_L2_HDLC_NRM		              0x0A
#define BLLI_L2_HDLC_ABM		              0x0B
#define BLLI_L2_LLC				                0x0C
#define BLLI_L2_X75				                0x0D
#define BLLI_L2_Q922			                0x0E
#define BLLI_L2_USER_SPECIFIED            0x10
#define BLLI_L2_ISO_7776		              0x11

/* ATM_BLLI_IE.Layer3Protocol constants */
#define BLLI_L3_X25				                0x06
#define BLLI_L3_ISO_8208		              0x07
#define BLLI_L3_X223			                0x08
#define BLLI_L3_SIO_8473		              0x09
#define BLLI_L3_T70				                0x0A
#define BLLI_L3_ISO_TR9577		            0x0B
#define BLLI_L3_USER_SPECIFIED	          0x10

/* ATM_BLLI_IE.Layer3IPI constants */
#define BLLI_L3_IPI_SNAP		              0x80
#define BLLI_L3_IPI_IP			              0xCC

typedef struct _ATM_BLLI_IE {
  ULONG  Layer2Protocol;
  UCHAR  Layer2Mode;
  UCHAR  Layer2WindowSize;
  ULONG  Layer2UserSpecifiedProtocol;
  ULONG  Layer3Protocol;
  UCHAR  Layer3Mode;
  UCHAR  Layer3DefaultPacketSize;
  UCHAR  Layer3PacketWindowSize;
  ULONG  Layer3UserSpecifiedProtocol;
  ULONG  Layer3IPI;
  UCHAR  SnapId[5];
} ATM_BLLI_IE, *PATM_BLLI_IE;

/* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
#define BCOB_A					                  0x00
#define BCOB_C					                  0x01
#define BCOB_X					                  0x02

/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
#define TT_NOIND				                  0x00
#define TT_CBR					                  0x04
#define TT_VBR					                  0x08

/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
#define TR_NOIND				                  0x00
#define TR_END_TO_END			                0x01
#define TR_NO_END_TO_END		              0x02

/* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
#define CLIP_NOT				                  0x00
#define CLIP_SUS				                  0x20

/* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
#define UP_P2P					                  0x00
#define UP_P2MP					                  0x01

typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
  UCHAR  BearerClass;
  UCHAR  TrafficType;
  UCHAR  TimingRequirements;
  UCHAR  ClippingSusceptability;
  UCHAR  UserPlaneConnectionConfig;
} ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;

typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
  UCHAR  SendingComplete;
} ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;

⌨️ 快捷键说明

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