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

📄 rsvp.h

📁 radius协议源码÷The Radius Stack will connect to a Radius Server. This stack implementation is built upo
💻 H
📖 第 1 页 / 共 2 页
字号:
	u_char		errs_code;	/* Error Code (def'd below) */	u_int16_t	errs_value;	/* Error Value		*/#define ERR_FORWARD_OK  0x8000		/* Flag: OK to forward state */#define Error_Usage(x)	(((x)>>12)&3)#define ERR_Usage_globl 0x00		/* Globally-defined sub-code */#define ERR_Usage_local 0x10		/* Locally-defined sub-code */#define ERR_Usage_serv	0x11		/* Service-defined sub-code */#define ERR_global_mask 0x0fff		/* Sub-code bits in Error Val */}    ERROR_SPEC_ipv4;#ifdef	USE_IPV6typedef struct {	struct in6_addr	errs_errnode;	/* Error Node Address		*/	u_char		errs_flags;	/* Flags:			*/	u_char		errs_code;	/* Error Code (def'd below) */	u_int16_t	errs_value;	/* Error Value		*/}    ERROR_SPEC_ipv6;#endif	/* USE_IPV6 */typedef struct {	Object_header	errs_header;	union {		ERROR_SPEC_ipv4	errs_ipv4;#ifdef	USE_IPV6		ERROR_SPEC_ipv6	errs_ipv6;#endif	/* USE_IPV6 */	}		errs_u;}    ERROR_SPEC;#define errspec4_enode	errs_u.errs_ipv4.errs_errnode#define errspec4_code	errs_u.errs_ipv4.errs_code#define errspec4_value	errs_u.errs_ipv4.errs_value#define errspec4_flags	errs_u.errs_ipv4.errs_flags#define errspec6_enode	errs_u.errs_ipv6.errs_errnode#define errspec6_code	errs_u.errs_ipv6.errs_code#define errspec6_value	errs_u.errs_ipv6.errs_value#define errspec6_flags	errs_u.errs_ipv6.errs_flags/* *	SCOPE object class */#define ctype_SCOPE_list_ipv4		1#define ctype_SCOPE_list_ipv6		2typedef struct {	struct in_addr	scopl_ipaddr[1];  /* var-len list of IP sender addrs */}    SCOPE_list_ipv4;#ifdef	USE_IPV6typedef struct {	struct in6_addr	scopl_ipaddr[1];  /* var-len list of IP sender addrs */}    SCOPE_list_ipv6;#endif	/* USE_IPV6 */typedef struct {	Object_header	scopl_header;	union {		SCOPE_list_ipv4	scopl_ipv4;#ifdef	USE_IPV6     		SCOPE_list_ipv6	scopl_ipv6;#endif	/* USE_IPV6 */	}		scope_u;}    SCOPE;#define scope4_addr	scope_u.scopl_ipv4.scopl_ipaddr#define scope6_addr	scope_u.scopl_ipv6.scopl_ipaddr/* *	INTEGRITY object class * */#define ctype_INTEGRITY_MD5            1#define KEYID_LENG      8       /* Length of Key Identifier (Bytes) */#define SEQNO_LENG      2       /* Length of Seq Number (32b Int)   */#define MD5_LENG        16      /* Length of MD5 digest (Bytes)     */typedef struct {        u_char          intg_keyid[KEYID_LENG]; /* Key Id                   */        u_int32_t       intg_seqno[SEQNO_LENG]; /* Sequence #: avoid replay */        u_char          intg_digest[MD5_LENG];  /* MD5 Digest               */}  INTEGRITY_MD5;typedef struct {        Object_header   intgr_header;        INTEGRITY_MD5   intgr_u;}  INTEGRITY;#define intgr_keyid	intgr_u.intg_keyid#define intgr_seqno	intgr_u.intg_seqno#define intgr_digest	intgr_u.intg_digest/* *	CONFIRM object class */#define ctype_CONFIRM_ipv4	1#define ctype_CONFIRM_ipv6	2typedef struct {	struct in_addr	recv_ipaddr;	/* Receiver requesting confirm'n */}    CONFIRM_ipv4;#ifdef	USE_IPV6typedef struct {	struct in6_addr	recv_ipaddr;	/* Receiver requesting confirm'n */}    CONFIRM_ipv6;#endif	/* USE_IPV6 */typedef struct {	Object_header	conf_header;	union {		CONFIRM_ipv4	conf_ipv4;#ifdef	USE_IPV6	      	CONFIRM_ipv6	conf_ipv6;#endif	/* USE_IPV6 */	}		conf_u;}    CONFIRM;#define conf4_addr	conf_u.conf_ipv4.recv_ipaddr#define conf6_addr	conf_u.conf_ipv6.recv_ipaddr/* *	FLOWSPEC class object * *		Opaque to RSVP -- Contents defined in rapi_lib.h */#define ctype_FLOWSPEC_Intserv0  2	/* The int-serv flowspec (v.0)*/#include "rapi_lib.h"typedef IS_specbody_t FLOWSPEC_Intserv0;typedef struct {	Object_header		flow_header;	FLOWSPEC_Intserv0	flow_body;	/* Defined in rapi_lib.h */}    FLOWSPEC;/* *	SENDER_TSPEC class object * *		Opaque to RSVP -- Contents defined in rapi_lib.h */#define ctype_SENDER_TSPEC_CTYPE	2typedef IS_tspbody_t SENDER_TSPEC_CTYPE;typedef struct {	Object_header		stspec_header;	SENDER_TSPEC_CTYPE	stspec_body;	/* Defined in rapi_lib.h */}    SENDER_TSPEC;/* *	ADSPEC class object * *		Opaque to RSVP -- Contents defined in rapi_lib.h */#define ctype_ADSPEC_INTSERV	2typedef IS_adsbody_t ADSPEC_INTSERV;typedef struct {	Object_header	adspec_header;	ADSPEC_INTSERV	adspec_body;	/* Defined in rapi_lib.h */}    ADSPEC;/* *	POLICY_DATA object class * *		Opaque RSVP -- Contents will be defined elsewhere */#define ctype_POLICY_DATA_CTYPE		1typedef u_int32_t POLICY_DATA_CTYPE;typedef struct {	Object_header		policy_d_header;	POLICY_DATA_CTYPE	data;}    POLICY_DATA;/* Objects for diagnostics support  * refer internet draft specification  *//* *	ROUTE Object class (Object used in Diagnostic messages) */#define	ctype_ROUTE_ipv4	1#define ctype_ROUTE_ip6		2typedef struct {	u_int16_t	reserved;	u_char		reserved2;	u_char		R_pointer;	struct in_addr route_addr_list[1]; /* Var len address list */} ROUTE_ipv4;typedef struct {	Object_header	route_header;	union {		ROUTE_ipv4 route_ipv4;	/*	Route_IP6 route_ip6;	*/		} route_u;} ROUTE;#define R_pointer_ipv4	route_u.route_ipv4.R_pointer#define route(x, i)	(x)->route_u.route_ipv4.route_addr_list[i]/* *	DIAGNOSTIC RESPONSE (DREP) Object Class */#define ctype_DIAG_RESPONSE_ipv4	1#define ctype_DIAG_RESPONSE_ip6		2typedef struct {	u_int32_t	resp_arrival_time;	/* DREQ arrival time	*/	struct in_addr	resp_inc_addr;		/* addr of incoming-iface */	struct in_addr  resp_outg_addr;		/* addr of outgoing iface */	struct in_addr  resp_prev_addr;		/* addr of previous hop	*/						/* RSVP router		*/	style_t		resp_resv_style;        /* reservation style	*/	u_char		resp_D_TTL;		/* rsvp_send_ttl - ip_ttl */						/* for this hop		*/	u_char		resp_R_error;		/* M + error mesg + K value */	u_int16_t	resp_timer;		/* local refresh timer value */} DIAG_RESPONSE_ipv4;typedef struct {	Object_header	resp_header;	union {	DIAG_RESPONSE_ipv4	resp_ipv4;/*	Response_IP6	resp_ip6; */	} resp_u;} DIAG_RESPONSE;#define resp_rstyle		resp_u.resp_ipv4.resp_resv_style#define resp_in_addr	        resp_u.resp_ipv4.resp_inc_addr#define resp_out_addr	        resp_u.resp_ipv4.resp_outg_addr#define resp_pre_addr	        resp_u.resp_ipv4.resp_prev_addr#define resp_Rerror		resp_u.resp_ipv4.resp_R_error#define resp_timeval            resp_u.resp_ipv4.resp_timer#define resp_arrtime	        resp_u.resp_ipv4.resp_arrival_time#define resp_DTTL		resp_u.resp_ipv4.resp_D_TTL#define DIAG_RESPONSE_MFLAG(x)	(((x)->resp_Rerror & 0x80) >> 7)#define DIAG_RESPONSE_RERROR(x)	(((x)->resp_Rerror & 0x70) >> 4)#define DIAG_RESPONSE_K(x)	((x)->resp_Rerror & 0x0F)#define DRESP_BASIC_SIZE        sizeof(DIAG_RESPONSE) /* *	DIAGNOSTIC object class -- diagnostic request header  */#define ctype_DIAGNOSTIC_ipv4	1#define ctype_DIAGNOSTIC_ip6	2typedef struct {	u_char		diag_max_hops;	   /* max number of RSVP hops	*/	u_char		diag_hop_count;	   /* # of RSVP hops 		*/	u_char		diag_mttl;	   /* multicast TTL		*/	u_char		diag_reply_mode;   /* the last bit of this field 					    * indicates how the reply                                            * should be returned	*/	u_int16_t	diag_path_MTU;	u_int16_t	diag_frag_offset;	u_int32_t	diag_msg_ID;	   /* Unique message ID		*/	FILTER_SPEC	diag_source_filtp; /* FILTER SPEC, sender host	*/	struct in_addr 	diag_lasthop_addr; /* IP address of last hop	*/	FILTER_SPEC	diag_resp_addr;    /* diag client address to send DREP	*/	} DIAGNOSTIC_ipv4;typedef struct {	Object_header diag_header;	union {		DIAGNOSTIC_ipv4	diag_ipv4;/*		Diagnostic_IP6  diag_ip6;	*/		} diag_u;	} DIAGNOSTIC;#define diag_replymode	        diag_u.diag_ipv4.diag_reply_mode#define diag_saddr		diag_u.diag_ipv4.diag_source_filtp.filt4_srcaddr#define diag_sfiltp		diag_u.diag_ipv4.diag_source_filtp#define diag_sport		diag_u.diag_ipv4.diag_source_filtp.filt4_srcport#define diag_msgID		diag_u.diag_ipv4.diag_msg_ID#define diag_rfiltp		diag_u.diag_ipv4.diag_resp_addr#define diag_raddr		diag_u.diag_ipv4.diag_resp_addr.filt4_srcaddr#define diag_rport            	diag_u.diag_ipv4.diag_resp_addr.filt4_srcport#define diag_laddr		diag_u.diag_ipv4.diag_lasthop_addr#define diag_maxhops		diag_u.diag_ipv4.diag_max_hops#define diag_ttl		diag_u.diag_ipv4.diag_mttl#define diag_hopcount		diag_u.diag_ipv4.diag_hop_count#define diag_pMTU		diag_u.diag_ipv4.diag_path_MTU#define diag_frag_off		diag_u.diag_ipv4.diag_frag_offset#define DIAG_MFBIT(x)  		((x)->diag_replymode & 0x01 )#define DIAG_HBIT(x)  		(((x)->diag_replymode & 0x02) >> 1 )	/* End of object definitions for diagnostics */	#ifdef __MAIN__/* *	Vector of maximum defined C-Type value per Class-Num */int	CType_max[class_MAX+1] = {		255,		ctype_SESSION_ipv6GPI,		0 /* XXX Sess group */,		ctype_RSVP_HOP_ipv6,		0 /* XXX Integrity */,		ctype_TIME_VALUES_CTYPE,		ctype_ERROR_SPEC_ipv6,		ctype_SCOPE_list_ipv6,		ctype_STYLE_CTYPE,		ctype_FLOWSPEC_Intserv0,		ctype_FILTER_SPEC_ipv6GPI,		ctype_SENDER_TEMPLATE_ipv6GPI,		ctype_SENDER_TSPEC_CTYPE,		ctype_ADSPEC_INTSERV,		0 /* XXX POLICY_DATA */,		ctype_CONFIRM_ipv6,		0			,	0,		0			,	0,		0			,	0,		0			,	0,		0			,	0,		0			,	0,		0			,	0,		ctype_DIAGNOSTIC_ip6	,	255, /* ROUTE */		ctype_DIAG_RESPONSE_ip6};#endif 	/* *	Useful definitions */#define FilterSpec	FILTER_SPEC#define FlowSpec	FLOWSPEC#define Authentication	POLICY_DATA#define PolicyData	POLICY_DATA/*	RSVP error codes */#define RSVP_Err_NONE		0	/* No error (CONFIRM)		*/#define RSVP_Erv_Nonev		0	/*    No-error Error Value	*/#define RSVP_Err_ADMISSION	1	/* Admission Control failure	*/	/* Globally-defined sub-codes: */#define RSVP_Erv_Other		0	/* Unspecified cause		*/#define RSVP_Erv_DelayBnd	1	/* Cannot meet delay bound req	*/#define RSVP_Erv_Bandwidth	2	/* Insufficient bandwidth	*/#define RSVP_Erv_MTU		3	/* MTU in flowspec too large	*/#define RSVP_Err_POLICY		2	/* Policy control failure	*/	/* Globally-defined sub-codes: TBD */#define RSVP_Err_NO_PATH	3	/* No path state for Resv	*/#define RSVP_Err_NO_SENDER	4	/* No sender info for Resv	*/#define RSVP_Err_BAD_STYLE	5	/* Conflicting style		*/#define RSVP_Err_UNKNOWN_STYLE	6	/* Unknown reservation style	*/#define RSVP_Err_BAD_DSTPORT	7	/* Conflicting DstPort in Sess	*/#define RSVP_Err_BAD_SNDPORT	8	/* Conflicting Sender Port	*/#define RSVP_Err_PREEMPTED	12	/* Service Preempted		*/#define RSVP_Err_UNKN_OBJ_CLASS	13	/* Unknown object Class-Num	*/					/*   ErrVal = Class_num, CType	*/#define RSVP_Err_UNKNOWN_CTYPE	14	/* Unknown object C-Type	*/					/*   ErrVal = Class_num, CType	*/#define RSVP_Err_API_ERROR	20	/* API client error		*/					/*   ErrVal = API error code	*/#define RSVP_Err_TC_ERROR	21	/* Traffic Control error	*/#define RSVP_Erv_Conflict_Serv  01	/* Service Conflict		*/#define RSVP_Erv_No_Serv	02	/* Unknown Service		*/#define RSVP_Erv_Crazy_Flowspec	03	/* Unreasonable Flowspec	*/#define RSVP_Erv_Crazy_Tspec	04	/* Unreasonable Tspec		*/#define RSVP_Err_TC_SYS_ERROR	22	/* Traffic control system error	*/					/* ErrVal = kernel error code	*/#define RSVP_Err_RSVP_SYS_ERROR 23	/* RSVSystem error		*/#define RSVP_Erv_MEMORY		1	/* Out of memory */#define RSVP_Erv_API		2	/* API logic error *//* Error values for diagnostics * */#define RSVP_Erv_Diag_NOPATH	0x01    /* No PATH for diagnosed sender */#define	RSVP_Erv_Diag_MTUBIG    0x02	/* DREQ packet size exceeded path MTU */#define RSVP_Erv_Diag_ROUTEBIG	0x04    /* ROUTE object size causes DREP 					 * length to exceed path MTU */  #endif	/* __rsvp_h__ */

⌨️ 快捷键说明

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