The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/netatm/atm_ioctl.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  *
    3  * ===================================
    4  * HARP  |  Host ATM Research Platform
    5  * ===================================
    6  *
    7  *
    8  * This Host ATM Research Platform ("HARP") file (the "Software") is
    9  * made available by Network Computing Services, Inc. ("NetworkCS")
   10  * "AS IS".  NetworkCS does not provide maintenance, improvements or
   11  * support of any kind.
   12  *
   13  * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED,
   14  * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
   15  * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE
   16  * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE.
   17  * In no event shall NetworkCS be responsible for any damages, including
   18  * but not limited to consequential damages, arising from or relating to
   19  * any use of the Software or related support.
   20  *
   21  * Copyright 1994-1998 Network Computing Services, Inc.
   22  *
   23  * Copies of this Software may be made, however, the above copyright
   24  * notice must be reproduced on all copies.
   25  *
   26  *      @(#) $FreeBSD: releng/5.0/sys/netatm/atm_ioctl.h 97990 2002-06-07 05:29:13Z mdodd $
   27  *
   28  */
   29 
   30 /*
   31  * Core ATM Services
   32  * -----------------
   33  *
   34  * PF_ATM socket ioctl definitions
   35  *
   36  */
   37 
   38 #ifndef _NETATM_ATM_IOCTL_H
   39 #define _NETATM_ATM_IOCTL_H
   40 
   41 
   42 /*
   43  * Structure for PF_ATM configure (AIOCCFG) socket ioctls
   44  */
   45 struct atmcfgreq {
   46         int             acr_opcode;             /* Sub-operation */
   47         union {
   48                 struct {
   49                         /* Configure - attach */
   50                         char    acru_att_intf[IFNAMSIZ];/* Interface name */
   51                         u_char  acru_att_proto; /* Signalling protocol */
   52                 } acru_att;
   53                 struct {
   54                         /* Configure - detach */
   55                         char    acru_det_intf[IFNAMSIZ];/* Interface name */
   56                 } acru_det;
   57         } acr_u;
   58 };
   59 #define acr_att_intf    acr_u.acru_att.acru_att_intf
   60 #define acr_att_proto   acr_u.acru_att.acru_att_proto
   61 #define acr_det_intf    acr_u.acru_det.acru_det_intf
   62 
   63 
   64 /*
   65  * Structure for PF_ATM set (AIOCSET) socket ioctls
   66  */
   67 struct atmsetreq {
   68         int             asr_opcode;             /* Sub-operation */
   69         union {
   70                 /* ARP server */
   71                 struct {
   72                         char    asru_arp_intf[IFNAMSIZ];/* Interface name */
   73                         Atm_addr        asru_arp_addr;  /* ARP srvr address */
   74                         Atm_addr        asru_arp_subaddr;/* ARP srvr subaddr */
   75                         caddr_t         asru_arp_pbuf;  /* Prefix buffer addr */
   76                         int             asru_arp_plen;  /* Prefix buffer len */
   77                 } asru_asrvr;
   78                 /* MAC address */
   79                 struct {
   80                         char    asru_mac_intf[IFNAMSIZ];/* Interface name */
   81                         struct mac_addr asru_mac_addr;  /* MAC address */
   82                 } asru_mac;
   83                 /* Network interface */
   84                 struct {
   85                         char    asru_nif_intf[IFNAMSIZ];/* Interface name */
   86                         char    asru_nif_pref[IFNAMSIZ];/* I/f prefix name */
   87                         int     asru_nif_cnt;           /* Number of i/fs */
   88                 } asru_nif;
   89                 /* NSAP prefix */
   90                 struct {
   91                         char    asru_prf_intf[IFNAMSIZ];/* Interface name */
   92                         u_char  asru_prf_pref[13];      /* NSAP prefix */
   93                 } asru_prf;
   94         } asr_u;
   95 };
   96 #define asr_arp_intf    asr_u.asru_asrvr.asru_arp_intf
   97 #define asr_arp_addr    asr_u.asru_asrvr.asru_arp_addr
   98 #define asr_arp_pbuf    asr_u.asru_asrvr.asru_arp_pbuf
   99 #define asr_arp_plen    asr_u.asru_asrvr.asru_arp_plen
  100 #define asr_arp_subaddr asr_u.asru_asrvr.asru_arp_subaddr
  101 #define asr_mac_intf    asr_u.asru_mac.asru_mac_intf
  102 #define asr_mac_addr    asr_u.asru_mac.asru_mac_addr
  103 #define asr_nif_intf    asr_u.asru_nif.asru_nif_intf
  104 #define asr_nif_pref    asr_u.asru_nif.asru_nif_pref
  105 #define asr_nif_cnt     asr_u.asru_nif.asru_nif_cnt
  106 #define asr_prf_intf    asr_u.asru_prf.asru_prf_intf
  107 #define asr_prf_pref    asr_u.asru_prf.asru_prf_pref
  108 
  109 
  110 /*
  111  * Structure for PF_ATM add (AIOCADD) socket ioctls
  112  */
  113 struct atmaddreq {
  114         int             aar_opcode;             /* Sub-operation */
  115         union {
  116                 /* Add PVC */
  117                 struct {
  118                         char    aaru_pvc_intf[IFNAMSIZ];/* Interface name */
  119                         u_short aaru_pvc_vpi;           /* VPI value */
  120                         u_short aaru_pvc_vci;           /* VCI value */
  121                         struct sockaddr aaru_pvc_dst;   /* Destination addr */
  122                         Sap_t   aaru_pvc_sap;           /* Endpoint SAP */
  123                         Aal_t   aaru_pvc_aal;           /* AAL */
  124                         Encaps_t aaru_pvc_encaps;       /* Encapsulation */
  125                         u_char  aaru_pvc_flags;         /* Flags (see below) */
  126                 } aaru_add_pvc;
  127 
  128                 /* Add ARP table entry */
  129                 struct {
  130                         char    aaru_arp_intf[IFNAMSIZ];/* Interface name */
  131                         struct sockaddr aaru_arp_dst;   /* IP addr */
  132                         Atm_addr        aaru_arp_addr;  /* ATM addr */
  133                         u_char  aaru_arp_origin;        /* Entry origin */
  134                 } aaru_add_arp;
  135         } aar_u;
  136 };
  137 #define aar_pvc_intf    aar_u.aaru_add_pvc.aaru_pvc_intf
  138 #define aar_pvc_vpi     aar_u.aaru_add_pvc.aaru_pvc_vpi
  139 #define aar_pvc_vci     aar_u.aaru_add_pvc.aaru_pvc_vci
  140 #define aar_pvc_dst     aar_u.aaru_add_pvc.aaru_pvc_dst
  141 #define aar_pvc_sap     aar_u.aaru_add_pvc.aaru_pvc_sap
  142 #define aar_pvc_aal     aar_u.aaru_add_pvc.aaru_pvc_aal
  143 #define aar_pvc_encaps  aar_u.aaru_add_pvc.aaru_pvc_encaps
  144 #define aar_pvc_flags   aar_u.aaru_add_pvc.aaru_pvc_flags
  145 #define aar_arp_intf    aar_u.aaru_add_arp.aaru_arp_intf
  146 #define aar_arp_dst     aar_u.aaru_add_arp.aaru_arp_dst
  147 #define aar_arp_addr    aar_u.aaru_add_arp.aaru_arp_addr
  148 #define aar_arp_origin  aar_u.aaru_add_arp.aaru_arp_origin
  149 
  150 /* PVC flags */
  151 #define PVC_DYN         0x01                    /* Dest addr is dynamic */
  152 
  153 
  154 /*
  155  * Structure for PF_ATM delete (AIOCDEL) socket ioctls
  156  */
  157 struct atmdelreq {
  158         int             adr_opcode;             /* Sub-operation */
  159         union {
  160                 /* Delete PVC */
  161                 struct {
  162                         char    adru_pvc_intf[IFNAMSIZ];/* Interface name */
  163                         u_short adru_pvc_vpi;           /* VPI value */
  164                         u_short adru_pvc_vci;           /* VCI value */
  165                 } adru_del_pvc;
  166 
  167                 /* Delete SVC */
  168                 struct {
  169                         char    adru_svc_intf[IFNAMSIZ];/* Interface name */
  170                         u_short adru_svc_vpi;           /* VPI value */
  171                         u_short adru_svc_vci;           /* VCI value */
  172                 } adru_del_svc;
  173 
  174                 /* Delete ARP table entry */
  175                 struct {
  176                         char    adru_arp_intf[IFNAMSIZ];/* Interface name */
  177                         struct sockaddr adru_arp_dst;   /* IP addr */
  178                 } adru_del_arp;
  179         } adr_u;
  180 };
  181 #define adr_pvc_intf    adr_u.adru_del_pvc.adru_pvc_intf
  182 #define adr_pvc_vpi     adr_u.adru_del_pvc.adru_pvc_vpi
  183 #define adr_pvc_vci     adr_u.adru_del_pvc.adru_pvc_vci
  184 #define adr_svc_intf    adr_u.adru_del_svc.adru_svc_intf
  185 #define adr_svc_vpi     adr_u.adru_del_svc.adru_svc_vpi
  186 #define adr_svc_vci     adr_u.adru_del_svc.adru_svc_vci
  187 #define adr_arp_intf    adr_u.adru_del_arp.adru_arp_intf
  188 #define adr_arp_dst     adr_u.adru_del_arp.adru_arp_dst
  189 
  190 
  191 /*
  192  * Structure for PF_ATM information (AIOCINFO) socket ioctls
  193  */
  194 struct atminfreq {
  195         int             air_opcode;             /* Sub-operation */
  196         caddr_t         air_buf_addr;           /* Buffer for returned info */
  197         int             air_buf_len;            /* Buffer length */
  198         union {
  199                 /* Vendor info */
  200                 char            airu_vinfo_intf[IFNAMSIZ];/* Interface name */
  201                 /* IP VCC */
  202                 struct sockaddr airu_ip_addr;           /* Destination host */
  203                 /* ARP table */
  204                 struct {
  205                         struct sockaddr airu_arp_addr;  /* Destination host */
  206                         u_char          airu_arp_flags; /* Flags (see below) */
  207                 } airu_arp;
  208                 /* ARP server */
  209                 char            airu_asrv_intf[IFNAMSIZ];/* Interface name */
  210                 /* Interface */
  211                 char            airu_int_intf[IFNAMSIZ];/* Interface name */
  212                 /* VCC */
  213                 char            airu_vcc_intf[IFNAMSIZ];/* Interface name */
  214                 /* Configuration */
  215                 char            airu_cfg_intf[IFNAMSIZ];/* Interface name */
  216                 /* Network interface */
  217                 char            airu_netif_intf[IFNAMSIZ];/* Interface name */
  218                 /* Physical interface statistics */
  219                 char            airu_physt_intf[IFNAMSIZ];/* Interface name */
  220         } air_u;
  221 };
  222 #define air_vinfo_intf          air_u.airu_vinfo_intf
  223 #define air_ip_addr             air_u.airu_ip_addr
  224 #define air_arp_addr            air_u.airu_arp.airu_arp_addr
  225 #define air_arp_flags           air_u.airu_arp.airu_arp_flags
  226 #define air_asrv_intf           air_u.airu_asrv_intf
  227 #define air_int_intf            air_u.airu_int_intf
  228 #define air_vcc_intf            air_u.airu_vcc_intf
  229 #define air_cfg_intf            air_u.airu_cfg_intf
  230 #define air_netif_intf          air_u.airu_netif_intf
  231 #define air_physt_intf          air_u.airu_physt_intf
  232 
  233 /* ARP table info flags */
  234 #define ARP_RESET_REF   0x01                    /* Reset refresh status */
  235 
  236 
  237 /*
  238  * Structures returned by information requests
  239  */
  240 
  241 /*
  242  * Vendor-specific interface information
  243  */
  244 struct air_vinfo_rsp {
  245         char            avsp_intf[IFNAMSIZ];    /* Interface name */
  246         int             avsp_len;               /* Length of returned
  247                                                         Vendor Info block */
  248                                                 /* Vendor info ... */
  249 };
  250 
  251 
  252 /*
  253  * ARP table information
  254  */
  255 struct air_arp_rsp {
  256         struct sockaddr aap_arp_addr;           /* Destination host */
  257         char            aap_intf[IFNAMSIZ];     /* Interface name */
  258         u_char          aap_flags;              /* Flags (see below) */
  259         u_char          aap_origin;             /* Entry origin (see below) */
  260         u_char          aap_age;                /* Aging timeout (minutes) */
  261         Atm_addr        aap_addr;               /* ATM address */
  262         Atm_addr        aap_subaddr;            /* ATM subaddress */
  263 };
  264 
  265 /*
  266  * ARP entry flags
  267  */
  268 #define ARPF_VALID      0x01                    /* Entry is valid */
  269 #define ARPF_REFRESH    0x02                    /* Entry has been refreshed */
  270 
  271 /*
  272  * ARP entry origin
  273  */
  274 #define ARP_ORIG_PERM   50                      /* Permanent entry */
  275 
  276 /*
  277  * IP VCC information
  278  */
  279 struct air_ip_vcc_rsp {
  280         struct sockaddr aip_dst_addr;           /* Destination host */
  281         char            aip_intf[IFNAMSIZ];     /* Interface name */
  282         u_short         aip_vpi;                /* VPI value */
  283         u_short         aip_vci;                /* VCI value */
  284         u_char          aip_sig_proto;          /* Signalling protocol */
  285         u_char          aip_flags;              /* Flags (IVF_*) */
  286         u_char          aip_state;              /* IP VCC state */
  287 };
  288 
  289 /*
  290  * ARP server information
  291  */
  292 struct air_asrv_rsp {
  293         char            asp_intf[IFNAMSIZ];     /* Interface name */
  294         Atm_addr        asp_addr;               /* Server ATM address */
  295         Atm_addr        asp_subaddr;            /* Server ATM subaddress */
  296         int             asp_state;              /* Server state */
  297         int             asp_nprefix;            /* Number of prefix entries */
  298 };
  299 
  300 /*
  301  * Interface information
  302  */
  303 struct air_int_rsp {
  304         char            anp_intf[IFNAMSIZ];     /* Interface name */
  305         Atm_addr        anp_addr;               /* ATM address */
  306         Atm_addr        anp_subaddr;            /* ATM subaddress */
  307         u_char          anp_sig_proto;          /* Signalling protocol */
  308         u_char          anp_sig_state;          /* Signalling protocol state */
  309         char            anp_nif_pref[IFNAMSIZ]; /* Netif prefix */
  310         int             anp_nif_cnt;            /* No. of netifs */
  311 };
  312 
  313 /*
  314  * Network interface information
  315  */
  316 struct air_netif_rsp {
  317         char            anp_intf[IFNAMSIZ];     /* Interface name */
  318         struct sockaddr anp_proto_addr;         /* Protocol address */
  319         char            anp_phy_intf[IFNAMSIZ]; /* Interface name */
  320 };
  321 
  322 /*
  323  * VCC information
  324  */
  325 #define O_CNT           8
  326 struct air_vcc_rsp {
  327         char            avp_intf[IFNAMSIZ];     /* Interface name */
  328         u_short         avp_vpi;                /* VPI value */
  329         u_short         avp_vci;                /* VCI value */
  330         u_char          avp_type;               /* Type (SVC or PVC) */
  331         u_char          avp_aal;                /* AAL */
  332         u_char          avp_sig_proto;          /* Signalling protocol */
  333         Encaps_t        avp_encaps;             /* Encapsulation */
  334         u_char          avp_state;              /* State (sig mgr specific) */
  335         char            avp_owners[(T_ATM_APP_NAME_LEN+1)*O_CNT];/* VCC users */
  336         Atm_addr        avp_daddr;              /* Address of far end */
  337         Atm_addr        avp_dsubaddr;           /* Subaddress of far end */
  338         long            avp_ipdus;              /* PDUs received from VCC */
  339         long            avp_opdus;              /* PDUs sent to VCC */
  340         long            avp_ibytes;             /* Bytes received from VCC */
  341         long            avp_obytes;             /* Bytes sent to VCC */
  342         long            avp_ierrors;            /* Errors receiving from VCC */
  343         long            avp_oerrors;            /* Errors sending to VCC */
  344         time_t          avp_tstamp;             /* State transition timestamp */
  345 };
  346 
  347 /*
  348  * Adapter configuration information
  349  */
  350 struct air_cfg_rsp {
  351         char            acp_intf[IFNAMSIZ];     /* Interface name */
  352         Atm_config      acp_cfg;                /* Config info */
  353 };
  354 #define acp_vendor      acp_cfg.ac_vendor
  355 #define acp_vendapi     acp_cfg.ac_vendapi
  356 #define acp_device      acp_cfg.ac_device
  357 #define acp_media       acp_cfg.ac_media
  358 #define acp_serial      acp_cfg.ac_serial
  359 #define acp_bustype     acp_cfg.ac_bustype
  360 #define acp_busslot     acp_cfg.ac_busslot
  361 #define acp_ram         acp_cfg.ac_ram
  362 #define acp_ramsize     acp_cfg.ac_ramsize
  363 #define acp_macaddr     acp_cfg.ac_macaddr
  364 #define acp_hard_vers   acp_cfg.ac_hard_vers
  365 #define acp_firm_vers   acp_cfg.ac_firm_vers
  366 
  367 /*
  368  * Version information
  369  */
  370 struct air_version_rsp {
  371         int             avp_version;            /* Software version */
  372 };
  373 
  374 /*
  375  * Physical interface statistics
  376  */
  377 struct air_phy_stat_rsp {
  378         char            app_intf[IFNAMSIZ];     /* Interface name */
  379         u_quad_t        app_ipdus;              /* PDUs received from I/F */
  380         u_quad_t        app_opdus;              /* PDUs sent to I/F */
  381         u_quad_t        app_ibytes;             /* Bytes received from I/F */
  382         u_quad_t        app_obytes;             /* Bytes sent to I/F */
  383         u_quad_t        app_ierrors;            /* Errors receiving from I/F */
  384         u_quad_t        app_oerrors;            /* Errors sending to I/F */
  385         u_quad_t        app_cmderrors;          /* I/F command errors */
  386 };
  387 
  388 
  389 /*
  390  * PF_ATM sub-operation codes
  391  */
  392 #define AIOCS_CFG_ATT   1
  393 #define AIOCS_CFG_DET   2
  394 #define AIOCS_ADD_PVC   32
  395 #define AIOCS_ADD_ARP   33
  396 #define AIOCS_DEL_PVC   64
  397 #define AIOCS_DEL_SVC   65
  398 #define AIOCS_DEL_ARP   66
  399 #define AIOCS_SET_ASV   96
  400 #define AIOCS_SET_NIF   97
  401 #define AIOCS_SET_PRF   98
  402 #define AIOCS_SET_MAC   99
  403 #define AIOCS_INF_VST   160
  404 #define AIOCS_INF_IPM   161
  405 #define AIOCS_INF_ARP   162
  406 #define AIOCS_INF_ASV   163
  407 #define AIOCS_INF_INT   164
  408 #define AIOCS_INF_VCC   165
  409 #define AIOCS_INF_CFG   166
  410 #define AIOCS_INF_NIF   167
  411 #define AIOCS_INF_PIS   168
  412 #define AIOCS_INF_VER   169
  413 
  414 
  415 /*
  416  * PF_ATM ioctls
  417  */
  418 #if !defined(__GNUC__)
  419 #define AIOCCFG         _IOW(A, 128, struct atmcfgreq)  /* Configure i/f */
  420 #define AIOCADD         _IOW(A, 129, struct atmaddreq)  /* Add (e.g. PVC) */
  421 #define AIOCDEL         _IOW(A, 130, struct atmdelreq)  /* Delete */
  422 #define AIOCSET         _IOW(A, 132, struct atmsetreq)  /* Set (e.g. net i/f) */
  423 #define AIOCINFO        _IOWR(A, 133, struct atminfreq) /* Show kernel info */
  424 #else
  425 #define AIOCCFG         _IOW('A', 128, struct atmcfgreq)/* Configure i/f */
  426 #define AIOCADD         _IOW('A', 129, struct atmaddreq)/* Add (e.g. PVC) */
  427 #define AIOCDEL         _IOW('A', 130, struct atmdelreq)/* Delete */
  428 #define AIOCSET         _IOW('A', 132, struct atmsetreq)/* Set (e.g. net i/f) */
  429 #define AIOCINFO        _IOWR('A', 133, struct atminfreq)/* Show kernel info */
  430 #endif
  431 
  432 #endif  /* _NETATM_ATM_IOCTL_H */

Cache object: 60d312081e4133982f45947d1f0516d4


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.