OpenSS7
SS7 for the
Common Man

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified:

Home Overview Status News Documentation Resources About
   
 Overview
 Status
 News
 Documentation
 Resources
 About

   
Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> strss7/include/ss7/lapd_ioctl.h


File /code/strss7/include/ss7/lapd_ioctl.h



#ifndef __LAPD_IOCTL_H__
#define __LAPD_IOCTL_H__

#define LAPD_IOC_MAGIC 'd'

#define LAPD_OBJ_TYPE_DF		0	/* default */
#define LAPD_OBJ_TYPE_DL		1	/* DL user */
#define LAPD_OBJ_TYPE_CD		2	/* CD provider */

typedef struct lapd_iochdr {
	ulong type;				/* object type */
	ulong id;				/* object id */
	ulong cmd;				/* command or argument */
} lapd_iochdr_t;

typedef struct lapd_proto {
	ulong pvar;
	ulong popt;
} lapd_proto_t;

/*
 *  Timers
 */
typedef struct lapd_timers_dl {
	ulong t200;				/* retransmission timeout */
	ulong t201;				/* retransmission timeout for TEI management */
	ulong t202;				/* response timeout for TEI management */
	ulong t203;				/* default inactivity timeout */
} lapd_timers_dl_t;

typedef struct lapd_timers_cd {
	ulong t200;				/* default retransmission timeout for data links */
	ulong t201;				/* retransmission timeout for TEI management */
	ulong t202;				/* response timeout for TEI management */
	ulong t203;				/* default inactivity timeout for data links */
} lapd_timers_cd_t;

typedef struct lapd_timers_df {
} lapd_timers_df_t;

/*
 *  Options
 */
typedef struct lapd_option_dl {
	struct lapd_timers_dl timers;
} lapd_option_dl_t;

typedef struct lapd_option_cd {
	struct lapd_timers_cd timers;
	ulong k;
	ulong n200;				/* maximum number of retransmissions */
	ulong n201;				/* maximum size of I field */
	ulong n202;				/* maximum number of retransmissions TEI management */
} lapd_option_cd_t;

typedef struct lapd_option_df {
	struct lapd_timers_df timers;
} lapd_option_df_t;

#define LAPD_IOCGOPTIONS	 _IOR(	LAPD_IOC_MAGIC,	 0,	lapd_iochdr_t	)
#define LAPD_IOCSOPTIONS	 _IOW(	LAPD_IOC_MAGIC,	 1,	lapd_iochdr_t	)

/*
 *  Configuration
 */
typedef struct lapd_config_dl {
	ulong ppa;				/* attached PPA (also ID of attached CD) */
	struct lapd_proto proto;		/* protocol options */
	struct lapd_addr dlc;			/* DL Connection address */
	ulong mode;				/* DL mode */
} lapd_config_dl_t;

typedef struct lapd_config_cd {
	ulong muxid;				/* multiplexor id */
	struct lapd_proto proto;		/* protocol options */
	ulong ppa;				/* associated (CDI) ppa */
	ulong type;				/* type of comm link */
	ulong mode;				/* mode of comm link */
} lapd_config_cd_t;

#define CD_TYPE_B	1	/* ISDN B-Channel (LAPB) */
#define CD_TYPE_D	2	/* ISDN D-Channel (LAPD, LAPB, LAPF) */
#define CD_TYPE_E	3	/* ISDN E-Channel (MTP2) */

#define CD_MODE_USER	0	/* User side */
#define CD_MODE_NTWK	1	/* Ntwk side */
#define CD_MODE_BOTH	2	/* Symm side */

typedef struct lapd_config_df {
	struct lapd_proto proto;
} lapd_config_df_t;

#define LAPD_GET	    0
#define LAPD_ADD	    1
#define LAPD_CHA	    2
#define LAPD_DEL	    3

#define LAPD_IOCGCONFIG	_IOWR(	LAPD_IOC_MAGIC,	 2,	lapd_iochdr_t	)
#define LAPD_IOCSCONFIG	_IOWR(	LAPD_IOC_MAGIC,	 3,	lapd_iochdr_t	)
#define LAPD_IOCTCONFIG	_IOWR(	LAPD_IOC_MAGIC,	 4,	lapd_iochdr_t	)
#define LAPD_IOCCCONFIG	_IOWR(	LAPD_IOC_MAGIC,	 5,	lapd_iochdr_t	)

/*
 *  State
 */
typedef struct lapd_statem_dl {
	struct lapd_timers_dl timers;
} lapd_statem_dl_t;

typedef struct lapd_statem_cd {
	struct lapd_timers_cd timers;
} lapd_statem_cd_t;

typedef struct lapd_statem_df {
	struct lapd_timers_df timers;
} lapd_statem_df_t;

#define LAPD_IOCGSTATEM	_IOWR(	LAPD_IOC_MAGIC,	 6,	lapd_iochdr_t	)
#define LAPD_IOCCMRESET	_IOWR(	LAPD_IOC_MAGIC,	 7,	lapd_iochdr_t	)

/*
 *  Statistics
 */
typedef struct lapd_stats_dl {
} lapd_stats_dl_t;

typedef struct lapd_stats_cd {
} lapd_stats_cd_t;

typedef struct lapd_stats_df {
} lapd_stats_df_t;

#define LAPD_IOCGSTATSP	_IOWR(	LAPD_IOC_MAGIC,	 8,	lapd_iochdr_t	)
#define LAPD_IOCSSTATSP	_IOWR(	LAPD_IOC_MAGIC,	 9,	lapd_iochdr_t	)
#define LAPD_IOCGSTATS	_IOWR(	LAPD_IOC_MAGIC,	10,	lapd_iochdr_t	)
#define LAPD_IOCCSTATS	_IOWR(	LAPD_IOC_MAGIC,	11,	lapd_iochdr_t	)

/*
 *  Notifications
 */
typedef struct lapd_notify_dl {
} lapd_notify_dl_t;

typedef struct lapd_notify_cd {
} lapd_notify_cd_t;

typedef struct lapd_notify_df {
} lapd_notify_df_t;

#define LAPD_IOCGNOTIFY	 _IOR(	LAPD_IOC_MAGIC,	12,	lapd_iochdr_t	)
#define LAPD_IOCSNOTIFY	 _IOW(	LAPD_IOC_MAGIC,	13,	lapd_iochdr_t	)
#define LAPD_IOCCNOTIFY	 _IOW(	LAPD_IOC_MAGIC,	14,	lapd_iochdr_t	)

/*
 *  Management
 */
#define LAPD_IOCCMGMT	_IOWR(	LAPD_IOC_MAGIC,	15,	lapd_iochdr_t	)

/*
 *  Pass-through IOCTLs
 */
#define LAPD_IOCCPASS	_IOWR(	LAPD_IOC_MAGIC,	16,	lapd_iochdr_t	)

#define LAPD_IOC_FIRST		 0
#define LAPD_IOC_LAST		16
#define LAPD_IOC_PRIVATE	32

#endif				/* __LAPD_IOCTL_H__ */


Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> strss7/include/ss7/lapd_ioctl.h

OpenSS7
SS7 for the
Common Man
Home Overview Status News Documentation Resources About

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified: