11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* atmsvc.h - ATM signaling kernel-demon interface definitions */ 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _LINUX_ATMSVC_H 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _LINUX_ATMSVC_H 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/atmapi.h> 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/atm.h> 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/atmioc.h> 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATMSIGD_CTRL _IO('a',ATMIOC_SPECIAL) 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* become ATM signaling demon control socket */ 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsenum atmsvc_msg_type { as_catch_null, as_bind, as_connect, as_accept, as_reject, 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds as_listen, as_okay, as_error, as_indicate, as_close, 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds as_itf_notify, as_modify, as_identify, as_terminate, 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds as_addparty, as_dropparty }; 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct atmsvc_msg { 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds enum atmsvc_msg_type type; 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds atm_kptr_t vcc; 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds atm_kptr_t listen_vcc; /* indicate */ 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int reply; /* for okay and close: */ 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* < 0: error before active */ 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* (sigd has discarded ctx) */ 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* ==0: success */ 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* > 0: error when active (still */ 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* need to close) */ 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct sockaddr_atmpvc pvc; /* indicate, okay (connect) */ 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct sockaddr_atmsvc local; /* local SVC address */ 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct atm_qos qos; /* QOS parameters */ 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct atm_sap sap; /* SAP */ 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned int session; /* for p2pm */ 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct sockaddr_atmsvc svc; /* SVC address */ 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} __ATM_API_ALIGN; 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Message contents: see ftp://icaftp.epfl.ch/pub/linux/atm/docs/isp-*.tar.gz 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Some policy stuff for atmsigd and for net/atm/svc.c. Both have to agree on 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * what PCR is used to request bandwidth from the device driver. net/atm/svc.c 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * tries to do better than that, but only if there's no routing decision (i.e. 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * if signaling only uses one ATM interface). 491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SELECT_TOP_PCR(tp) ((tp).pcr ? (tp).pcr : \ 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (tp).max_pcr && (tp).max_pcr != ATM_MAX_PCR ? (tp).max_pcr : \ 531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (tp).min_pcr ? (tp).min_pcr : ATM_MAX_PCR) 541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 56