ATMIO(4N) DEVICES AND NETWORK INTERFACES ATMIO(4N) NAME atmio - ATM device control operations SYNOPSIS #include DESCRIPTION The ATM device responds to a number of ioctl(2) requests, defined in . The ioctl(2) requests and commands are STREAMS-based on SunOS and IRIX platforms; see streamio(4) for details on the STREAMS ioctl(2) inter- face. This interface is not intended for general use. Use of these operations may interfere with normal use of the ATM network. This interface is likely to change in future releases of the ATM device driver. IOCTLS FOR THE ATM LAYER The following ioctl commands are applicable to the ATM layer. ATMIOC_GET_MY_ADDRESS Returns the ATM-layer address of this ATM device. The result is returned in an Atm_address structure, as defined in . ATMIOC_FLUSH_ARP Flushes the internal ATM ARP table for the device. ATMIOC_DELETE_ARP Deletes the ARP table entry for the hostname provided as an argument in the form of the struct arpreq found in . ATMIOC_DELETE_ARP will fail if the given hostname does not exist, or if an address family other than AF_INET is specified. ATMIOC_GET_ARP Retrieves the ARP information for the hostname speci- fied in the argument of the form struct arpreq found in . ATMIOC_GET_ARP will fail if the given hostname does not exist, or if an address family other than AF_INET is specified. ATMIOC_SOFT_RESET Resets the connection information for the ATM device. This can be used to reset the connection information for devices connected to an ATM network if fiber pairs on the switch are physically moved from one port to a separate port. ATMIOC_SET_BATCH_SIZE FSI Release 2.3 Last change: 7 June 1994 1 ATMIO(4N) DEVICES AND NETWORK INTERFACES ATMIO(4N) Sets the number of cells to be received for a null AAL connection before the data will be returned in the ATM library call atm_recv(4N). This allows a the driver to queue up cells to pass up to the user, thereby reducing the overhead incurred for each atm_recv(4N) call. Please see atm_recv(4N) and atm_connect(4N) for details. ATMIOC_GET_BATCH_SIZE Returns the current batch size setting. IOCTLS FOR ATM STATISTICS The following ioctl commands are applicable to the ATM layer and AAL layers. ATMIOC_ATM_LAYER_STATS Returns driver statistics for the ATM layer. The statistics are returned in the Atm_layer_stats struc- ture defined in . ATMIOC_AAL0_STATS Returns driver statistics for the null adaptation layer. The statistics are returned in the Aal0_stats structure defined in . ATMIOC_AAL4_STATS Returns driver statistics for AAL 3/4. The statistics are returned in the Aal4_stats structure defined in . ATMIOC_AAL5_STATS Returns driver statistics for AAL 5. The statistics are returned in the Aal5_stats structure defined in . ATMIOC_ZERO_STATISTICS Resets all driver statistics to zero. IOCTLS FOR LOW-LEVEL HARDWARE ACCESS The following operations support low-level access to the ATM device. They are not for general use. ATMIOC_INTR_OFF Turns off the interrupts in the driver for the ATM dev- ice. Note that while the hardware interrupts may still occur, they will be caught and then ignored by the driver. ATMIOC_INTR_ON Turns on the interrupts that were turned off by ATMIOC_INTR_OFF. FSI Release 2.3 Last change: 7 June 1994 2 ATMIO(4N) DEVICES AND NETWORK INTERFACES ATMIO(4N) ATMIOC_SET_RAW_CELL Delivers the raw cell as specified as an array of 15 words to the hardware. Note that this raw delivery mechanism should be used with extreme caution as these words are passed to the hardware unchanged and may not be in a format that can be interpreted by the driver code. Cells written using this interface should be read using the ATMIOC_GET_RAW_CELL command. Also, interrupts at the driver level should be disabled using ATMIOC_INTR_OFF to prevent the driver from attempting to read the cell. Note also that 15 words should be specified to this interface. If the interface is the ASX switch, the first word is interpreted as a route word, otherwise, the first word is simply discarded and the remaining 14 words are delivered. ATMIOC_SET_RAW_CELL will fail if the number of words specified is not 15. ATMIOC_GET_RAW_CELL Reads a raw cell into an array of 15 words. Note that the first word is reserved for the route word for the ASX switch; it is undefined for all other interfaces. Therefore, the actual cell begins at the second word of the 15 words. IOCTLS FOR ASX SWITCH CONTROL SOFTWARE The following interfaces are provided to support the Switch Control Software for the ASX switch. These interfaces are not for general use. ATMIOC_ATTACH_RX_VCI Associates the specified VCI with this file descriptor. After performing this operation, PDUs arriving over the specified VCI are prefixed with the VCI and delivered via the file descriptor. PDUs that are transmitted on the file descriptor must also be prefixed with a local VCI value. This value will be translated by the switch hardware to determine the outgoing port(s) and outgoing VCI for that PDU. ATMIOC_DETACH_RX_VCI Deletes the association of the given VCI with this file descriptor. The following interfaces support the ASX switch controller ioport. This controller ioport behaves as an ATM computer interface, generally speaking. ATMIOC_CP_ENAB_LOOPBACK Enables hardware loopback for the controller ioport. Cells written to the ioport transmit interface will immediately return to the ioport receive interface. FSI Release 2.3 Last change: 7 June 1994 3 ATMIO(4N) DEVICES AND NETWORK INTERFACES ATMIO(4N) Routing of cells to and from the controller ioport is typically done by the switch control software, thus this interface should not be used when the switch con- trol software is running. ATMIOC_CP_DIS_LOOPBACK Disables the hardware loopback mechanism for the con- troller ioport that may have been previously enabled with the ATMIOC_CP_ENAB_LOOPBACK interface. ATMIOC_IOPORT_OFF Disables the controller ioport completely. ATMIOC_IOPORT_ON Enables the controller ioport that may have been dis- abled using the ATMIOC_IOPORT_OFF interface. IOCTLS FOR PERMANENT VIRTUAL CONNECTIONS The following ioctl commands are applicable to routing of IP traffic over PVCs. ATMIOC_CREATE_IPPVC Establishes an association between an IP destination address and a PVC. The IP address and VC identifiers are specified by an Ip_pvc structure, defined in . ATMIOC_REMOVE_IPPVC Removes the association between an IP destination address and a PVC. ATMIOC_SPANS_OFF Disables SPANS protocol messages over this ATM link, for use when communicating to a non-SPANS ATM device. ATMIOC_SPANS_ON Enables SPANS protocol messages over this ATM link if they have been disabled by ATMIOC_SPANS_OFF. EXAMPLE FOR SUNOS AND IRIX PLATFORMS The following is an example of the ioctl(2) mechanism on STREAMS-based (SunOS and IRIX) platforms. #include #include #include #include struct strioctl ioc; Atm_address addr; ioc.ic_cmd = ATMIOC_GET_MY_ADDRESS; FSI Release 2.3 Last change: 7 June 1994 4 ATMIO(4N) DEVICES AND NETWORK INTERFACES ATMIO(4N) ioc.ic_timout = 0; ioc.ic_len = sizeof(addr); ioc.ic_dp = (caddr_t) &addr; if (ioctl(atm_fd, I_STR, (caddr_t) &ioc) != 0) perror("ioctl: ATMIOC_GET_MY_ADDRESS); EXAMPLE FOR ULTRIX PLATFORMS The following is an example of the ioctl(2) mechanism on ULTRIX platforms. #include #include Atm_address addr; if (ioctl(atm_fd, ATMIOC_GET_MY_ADDRESS, (caddr_t) &addr) != 0) perror("ioctl: ATMIOC_GET_MY_ADDRESS); SEE ALSO atm_intro(4N), streamio(4) FSI Release 2.3 Last change: 7 June 1994 5