Bull AIX 4.3 - Communications Programming Guide

Type
Programming Guide
Bull
AIX Communications
Programming Concepts
AIX
86 A2 35JX 01
ORDER REFERENCE
Bull
AIX Communications
Programming Concepts
AIX
Software
December 1998
BULL ELECTRONICS ANGERS
CEDOC
34 Rue du Nid de Pie – BP 428
49004 ANGERS CEDEX 01
FRANCE
86 A2 35JX 01
ORDER REFERENCE
The following copyright notice protects this book under the Copyright laws of the United States of America
and other countries which prohibit such actions as, but not limited to, copying, distributing, modifying, and
making derivative works.
Copyright
Bull S.A. 1992, 1998
Printed in France
Suggestions and criticisms concerning the form, content, and presentation of
this book are invited. A form is provided at the end of this book for this purpose.
To order additional copies of this book or other Bull Technical Publications, you
are invited to use the Ordering Form also provided at the end of this book.
Trademarks and Acknowledgements
We acknowledge the right of proprietors of trademarks mentioned in this book.
AIX
R
is a registered trademark of International Business Machines Corporation, and is being used under
licence.
UNIX is a registered trademark in the United States of America and other countries licensed exclusively
through the Open Group.
The information in this document is subject to change without notice. Groupe Bull will not be liable for errors
contained herein, or for incidental or consequential damages in connection with the use of this material.
Preface
iii
About This Book
This book contains conceptual and procedural information about various communications
programming tools.
Note: The information in this book can also be found in HTML format on the ”Hypertext
Library for AIX 4.3” CD-ROM. This online documentation is designed for use with an
HTML version 3.2 compatible web browser.
Who Should Use This Book
This book is intended for programmers who know the C language, have some knowledge of
communications applications, and want to create and implement communications programs.
How to Use This Book
This book contains programming concepts, procedures, and examples for communications
systems and networks. The conceptual information is divided into overviews and sublevel
discussions. The procedures and examples follow the conceptual information they relate to.
Highlighting
The following highlighting conventions are used in this book:
Bold Identifies commands, keywords, files, directories, and other items
whose names are predefined by the system.
Italics Identifies parameters whose actual names or values are to be supplied
by the user.
Monospace Identifies examples of specific data values, examples of text similar to
what you might see displayed, examples of portions of program code
similar to what you might write as a programmer, messages from the
system, or information you should actually type.
ISO 9000
ISO 9000 registered quality systems were used in the development and manufacturing of
this product.
AIX Support for the X/Open UNIX95 Specification
The AIX operating system is designed to support the X/Open UNIX95 Specification for
portability of UNIX–based operating systems. Many new interfaces, and some current ones,
have been added or enhanced to meet this specification. AIX 4.3 is even more open and
portable for applications.
At the same time, compatibility with previous AIX releases is preserved. This is
accomplished by the creation of a new environment variable, which can be used to set the
system environment on a per–system, per–user, or per–process basis.
To determine the proper way to develop a UNIX95–portable application, you may need to
refer to the X/Open UNIX95 Specification, which can be obtained on a CD–ROM by
ordering the printed copy of AIX Commands Reference, order number 86 A2 38JX to 86 A2
43JX, or by ordering Go Solo: How to Implement and Go Solo with the Single Unix
Specification, a book which includes the X/Open UNIX95 Specification on a CD–ROM.
iv
AIX Communications Programming Concepts
Related Publications
The following books contain information about or related to communications:
AIX and Related Products Documentation Overview, order number 86 A2 71WE.
AIX 4.3 System Users Guide: Communications and Networks,
order number 86 A2 98HX.
AIX 4.3 System Management Guide: Communications and Networks,
order number 86 A2 31JX.
AIX General Programming Concepts : Writing and Debugging Programs,
order number 86 A2 34JX.
AIX Kernel Extensions and Device Support Programming Concepts,
order number 86 A2 36JX.
AIX Technical Reference, order number 86 A2 81AP to 86 A2 91AP.
AIX Version 4.3 Problem Solving Guide and Reference,
order number 86 A2 32JX.
Token–Ring Network Architecture Reference, order number SC30–3374.
SNA Format and Protocol Reference Manual: Management Services.
UNIX System V Release 4, Programmers Guide: STREAMS. Englewood Cliffs, N.J.:
Prentice–Hall, Inc., 1990.
Leffler, S.J., et. al., UNIX System Managers Manual (SMM), 4.3 Berkeley Software
Distribution, Computer Systems Research Group, Computer Science Division, Univ. of
California, Berkeley, Calif., 1989.
Leffler, S.J., et. al., UNIX Programmers Supplementary Documents, Volume 1 (PS1), 4.3
Berkeley Software Distribution, Computer Systems Research Group, Computer Science
Division, Univ. of California, Berkeley, Calif., March, 1989.
Data Link Provider Interface Specification. Parsippany, N.J.: UNIX International,
August 20, 1991.
Xerox, Courier: The Remote Procedure Call Protocol, XNSS 038112, Xerox Corp.,
Dec 1981.
Xerox, Internet Transport Protocols, XNSS 028112, Xerox Corp., Dec. 1981.
Xerox, Clearinghouse Protocol, XNSS 078404, Xerox Corp., Apr. 1984.
Xerox, Xerox Network Systems Architecture, General Information Manual, XNSG
068504, Xerox Corp., Apr. 1985.
Ordering Additional Copies of This Book
You can order publications from your sales representative or from your point of sale.
To order additional copies of this book, use order number 86 A2 35JX.
Use AIX and Related Products Documentation Overview for information on related
publications and how to obtain them.
Preface
v
Table of Contents
About This Book iii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Who Should Use This Book iii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How to Use This Book iii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AIX Support for the X/Open UNIX95 Specification iii. . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 1. Data Link Control 1-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Generic Data Link Control Environment Overview 1-3. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Meeting the GDLC Criteria 1-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Implementing GDLC Interface 1-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GDLC Interface ioctl Entry Point Operations 1-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Service Access Points 1-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Link Stations 1-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Local–Busy Mode 1-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Short–Hold Mode 1-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Testing and Tracing Links 1-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Statistics 1-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GDLC Special Kernel Services 1-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GDLC Problem Determination 1-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC Status Information 1-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC Error Log 1-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC Link Station Trace Facility 1-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Link Control Programming and Reference Information 1-14. . . . . . . . . . . . . . . . . . .
DLC Reference Information 1-14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC Programming Procedures 1-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Token–Ring Data Link Control Overview 1-16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCTOKEN Device Manager Nodes 1-17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCTOKEN Device Manager Functions 1-19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCTOKEN Protocol Support 1-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Station Types 1-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Response Modes 1-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Token–Ring Data Packet 1-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCTOKEN Name–Discovery Service 1-22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LAN Find Data Format 1-22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LAN Found Data Format 1-23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bridge Route Discovery 1-24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCTOKEN Direct Network Services 1-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCTOKEN Connection Contention 1-26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initiating DLCTOKEN Link Sessions 1-27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stopping DLCTOKEN Link Sessions 1-28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCTOKEN Programming Interfaces 1-29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENABLE_SAP 1-30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_START_LS 1-30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ALTER 1-32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_SAP 1-32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_LS 1-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENTER_SHOLD 1-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_EXIT_SHOLD 1-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_GROUP 1-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_FUNC_ADDR 1-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
AIX Communications Programming Concepts
DLC_DEL_FUNC_ADDR 1-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_DEL_GRP 1-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IOCINFO 1-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IEEE 802.3 Ethernet Data Link Control Overview 1-34. . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC8023 Device Manager Nodes 1-35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC8023 Device Manager Functions 1-37. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC8023 Protocol Support 1-38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Station Types 1-38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Response Modes 1-38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IEEE 802.3 Data Packet 1-38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC8023 Name–Discovery Services 1-40. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LAN Find Data Format 1-40. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LAN Found Data Format 1-41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC8023 Direct Network Services 1-43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC8023 Connection Contention 1-44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC8023 Link Sessions 1-45. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Link Session Termination 1-45. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC8023 Programming Interfaces 1-46. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENABLE_SAP 1-47. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_START_LS 1-48. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ALTER 1-48. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_SAP 1-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_LS 1-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENTER_SHOLD 1-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_EXIT_SHOLD 1-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_GROUP 1-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_FUNC_ADDR 1-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_DEL_FUNC_ADDR 1-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_DEL_GRP 1-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IOCINFO 1-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standard Ethernet Data Link Control Overview 1-50. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCETHER Device Manager Nodes 1-51. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCETHER Device Manager Functions 1-53. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCETHER Protocol Support 1-54. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Station Type 1-54. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Response Modes 1-54. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ethernet Data Packet 1-54. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCETHER Name–Discovery Services 1-56. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LAN Find Data Format 1-56. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LAN Found Data Format 1-57. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCETHER Direct Network Services 1-59. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCETHER Connection Contention 1-60. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCETHER Link Session Initiation 1-61. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCETHER Link Session Termination 1-62. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCETHER Programming Interfaces 1-63. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENABLE_SAP 1-64. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_START_LS 1-64. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ALTER 1-65. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_SAP 1-65. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_LS 1-65. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENTER_SHOLD 1-65. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_EXIT_SHOLD 1-65. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_GRP 1-65. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_FUNC_ADDR 1-66. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_DEL_FUNC_ADDR 1-66. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Preface
vii
DLC_DEL_GRP 1-66. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IOCINFO 1-66. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Synchronous Data Link Control Overview 1-67. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCSDLC Device Manager Functions 1-68. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCSDLC Protocol Support 1-69. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Station Types 1-69. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operation Modes 1-69. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transmission Frames 1-70. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Response Modes 1-70. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Station Link Address Field 1-70. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Control Field (Commands Supported) 1-71. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Control Field (Responses Supported) 1-71. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCSDLC Programming Interfaces 1-73. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENABLE_SAP 1-74. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_START_LS 1-75. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ALTER 1-77. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_SAP 1-77. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_LS 1-77. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENTER_SHOLD 1-77. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_EXIT_SHOLD 1-77. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_GRP 1-77. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_FUNC_ADDR 1-77. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_DEL_FUNC_ADDR 1-77. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IOCINFO 1-77. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCSDLC Asynchronous Function Subroutine Calls 1-78. . . . . . . . . . . . . . . . . . . . . . . . . .
Qualified Logical Link Control (DLCQLLC) Overview 1-79. . . . . . . . . . . . . . . . . . . . . . . . . .
DLCQLLC Device Manager Functions 1-79. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCQLLC Programming Interfaces 1-80. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENABLE_SAP 1-80. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_START_LS 1-81. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ALTER 1-84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_SAP 1-84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_LS 1-84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENTER_SHOLD 1-84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_EXIT_SHOLD 1-84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_GRP 1-84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_FUNC_ADDR 1-84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_DEL_FUNC_ADDR 1-85. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IOCINFO 1-85. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLCQLLC Asynchronous Function Subroutine Calls 1-85. . . . . . . . . . . . . . . . . . . . . . .
Data Link Control FDDI (DLC FDDI) Overview 1-86. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC FDDI Device Manager Nodes 1-87. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC FDDI Device Manager Functions 1-89. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC FDDI Protocol Support 1-90. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Station Type 1-90. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Response Modes 1-90. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FDDI Data Packet 1-90. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC FDDI Name–Discovery Services 1-92. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LAN Find Data Format 1-92. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LAN Found Data Format 1-94. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC FDDI Direct Network Services 1-95. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC FDDI Connection Contention 1-96. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC FDDI Link Sessions 1-97. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Link Session Termination 1-97. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC FDDI Programming Interfaces 1-98. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
viii
AIX Communications Programming Concepts
DLC_ENABLE_SAP 1-99. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_START_LS 1-100. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ALTER 1-101. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ENTER_SHOLD 1-102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_EXIT_SHOLD 1-102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_GROUP 1-102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_ADD_FUNC_ADDR 1-102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_DEL_FUNC_ADDR 1-102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_DEL_GRP 1-102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_SAP 1-102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLC_QUERY_LS 1-102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IOCINFO 1-102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Asynchronous Function Calls 1-102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 2. Data Link Provider Interface Implementation 2-1. . . . . . . . . . . . . . . . . . .
Primitive Implementation Specifics 2-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Packet Format Registration Specifics 2-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Address Resolution Routine Registration Specifics 2-3. . . . . . . . . . . . . . . . . . . . . . . . .
ioctl Specifics 2-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dynamic Route Discovery 2-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DRD Configuration 2-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Connectionless Mode Only DLPI Driver versus Connectionless/Connection–Oriented
DLPI DriverAttention: 2-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLPI Primitives 2-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Obtaining Copies of the DLPI Specifications 2-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 3. New Database Manager 3-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using NDBM Subroutines 3-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagnosing NDBM Problems 3-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of NDBM and DBM Programming References 3-2. . . . . . . . . . . . . . . . . . . . . . . . . . . .
NDBM Subroutines 3-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DBM Subroutines 3-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 4. eXternal Data Representation 4-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
eXternal Data Representation Overview for Programming 4-2. . . . . . . . . . . . . . . . . . . . .
A Canonical Standard 4-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic Block Size 4-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unsupported Representations 4-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Subroutine Format 4-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Library 4-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR with RPC 4-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Operation Directions 4-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Language Specification 4-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lexical Notes 4-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Declarations, Enumerations, Structures, and Unions 4-7. . . . . . . . . . . . . . . . . . . . . . .
Syntax Notes 4-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Data Types 4-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Integer Data Types 4-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enumeration Data Types 4-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Boolean Data Types 4-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Floating–Point Data Types 4-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Opaque Data Types 4-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Array Data Types 4-13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Strings 4-13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Structures 4-14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Preface
ix
Discriminated Unions 4-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Voids 4-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constants 4-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Type Definitions 4-16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Optional Data 4-16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of XDR Programming References 4-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Library Filter Primitives 4-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Library Non–Filter Primitives 4-19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Examples 4-19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Library Filter Primitives 4-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Basic Filter Primitives 4-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Constructed Filter Primitives 4-21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XDR Non–Filter Primitives 4-24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating and Using XDR Data Streams 4-24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Manipulating an XDR Data Stream 4-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Implementing an XDR Data Stream 4-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Destroying an XDR Data Stream 4-26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Passing Linked Lists Using XDR Example 4-27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using an XDR Data Description Example 4-30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Showing the Justification for Using XDR Example 4-32. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using XDR Example 4-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using XDR Array Examples 4-35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using an XDR Discriminated Union Example 4-37. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Showing the Use of Pointers in XDR Example 4-38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 5. Network Computing System 5-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Remote Procedure Call Runtime Library 5-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Routines 5-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Client Routines 5-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Server Routines 5-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conversion Routines 5-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Location Broker 5-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Location Broker Components 5-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Location Broker Data 5-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Location Broker Client Agent 5-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Local Location Broker 5-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Global Location Broker 5-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 6. Network Information Service 6-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of NIS Programming References 6-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Files 6-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 7. Network Management 7-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simple Network Management Protocol 7-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Management Information Base 7-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terminology Related to Management Information Base Variables 7-6. . . . . . . . . . . . . .
Working with Management Information Base Variables 7-7. . . . . . . . . . . . . . . . . . . . . . .
Management Information Base Database 7-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
get–next Request 7-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How a Manager Functions 7-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How an Agent Functions 7-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Traps 7-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of SNMP Agent Programming References 7-13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programming Commands 7-13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Files and File Formats 7-13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
x
AIX Communications Programming Concepts
SMUX Subroutines 7-14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SMUX Error Logging Subroutines Examples 7-16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 8. Remote Procedure Call 8-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Model 8-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transports and Semantics 8-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC in the Binding Process 8-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Message Protocol 8-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Protocol Requirements 8-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Messages 8-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Call Message 8-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Reply Message 8-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Marking Records in RPC Messages 8-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Authentication 8-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Authentication Protocol 8-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NULL Authentication 8-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNIX Authentication 8-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Encryption Standard (DES) Authentication 8-12. . . . . . . . . . . . . . . . . . . . . . . . . . .
DES Authentication Protocol 8-14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diffie–Hellman Encryption 8-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Port Mapper Program 8-16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Registering Ports 8-16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Port Mapper Protocol 8-17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Port Mapper Procedures 8-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programming in RPC 8-19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Assigning Program Numbers 8-19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Assigning Version Numbers 8-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Assigning Procedure Numbers 8-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Registered RPC Programs 8-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Highest Layer of RPC 8-21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Intermediate Layer of RPC 8-22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Lowest Layer of RPC 8-24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Allocating Memory with XDR 8-24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Starting RPC from the inetd Daemon 8-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compiling and Linking RPC Programs 8-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Features 8-26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Batching Remote Procedure Calls 8-26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Broadcasting Remote Procedure Calls 8-27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Call–back Procedures 8-27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the select Subroutine on the Server Side 8-27. . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Language 8-28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Language Descriptions 8-28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Structures 8-29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unions 8-29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enumerations 8-30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Type Definitions 8-30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constants 8-30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programs 8-30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Declarations 8-31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPCL Syntax Requirements for Program Definition 8-32. . . . . . . . . . . . . . . . . . . . . . . .
Exceptions to the RPCL Rules 8-32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rpcgen Protocol Compiler 8-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Converting Local Procedures into Remote Procedures 8-34. . . . . . . . . . . . . . . . . . . . .
Generating XDR Routines 8-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C Preprocessor 8-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Preface
xi
Changing Time Outs 8-35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Handling Broadcast on the Server Side 8-35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Other Information Passed to Server Procedures 8-36. . . . . . . . . . . . . . . . . . . . . . . . . . .
List of RPC Programming References 8-37. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Subroutines and Macros 8-37. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using UNIX Authentication Example 8-41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNIX Authentication on the Client Side 8-41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNIX Authentication on the Server Side 8-41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DES Authentication Example 8-44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DES Authentication on the Client Side 8-44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DES Authentication on the Server Side 8-45. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Highest Layer of RPC Example 8-47. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Intermediate Layer of RPC Example 8-48. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Intermediate Layer of RPC on the Server Side 8-48. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Intermediate Layer of RPC on the Client Side 8-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Lowest Layer of RPC Example 8-50. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Lowest Layer of RPC from the Server Side 8-50. . . . . . . . . . . . . . . . . . . . . . . . . . .
The Lowest Layer of RPC from the Client Side 8-52. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Showing How RPC Passes Arbitrary Data Types Example 8-54. . . . . . . . . . . . . . . . . . . .
Passing a Simple User–Defined Structure Example 8-54. . . . . . . . . . . . . . . . . . . . . . . .
Passing a Variable–Length Array Example 8-54. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Passing a Fixed–Length Array Example 8-55. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Passing Structure with Pointers Example 8-55. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Multiple Program Versions Example 8-56. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Broadcasting a Remote Procedure Call Example 8-57. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the select Subroutine Example 8-58. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rcp Process on TCP Example 8-59. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Callback Procedures Example 8-62. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPC Language ping Program Example 8-66. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Converting Local Procedures into Remote Procedures Example 8-67. . . . . . . . . . . . . . .
Generating XDR Routines Example 8-72. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 9. Sockets 9-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sockets Overview 9-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sockets Interface 9-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Interface to Network Facilities 9-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Subroutines 9-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Header Files 9-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Address Data Structures 9-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Communication Domains 9-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Address Formats 9-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Address Families 9-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNIX Domain Properties 9-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Internet Domain Properties 9-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XNS Domain Properties 9-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AIX Network Device Driver (NDD) Domain Properties 9-11. . . . . . . . . . . . . . . . . . . . . .
Socket Addresses 9-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Address Storage 9-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Addresses in TCP/IP 9-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Addresses in AIX Network Device Driver (NDD) 9-13. . . . . . . . . . . . . . . . . . . .
Socket Types and Protocols 9-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Types 9-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Protocols 9-17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Creation 9-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Binding Names to Sockets 9-19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xii
AIX Communications Programming Concepts
Binding Addresses to Sockets 9-19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Obtaining Socket Addresses 9-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Connections 9-21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Server Connections 9-21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Connectionless Datagram Services 9-23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Options 9-24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Data Transfer 9-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Out–of–Band Data 9-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket I/O Modes 9-27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Shutdown 9-28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Closing Sockets 9-28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IP Multicasts 9-29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Address Translation 9-31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Name Resolution 9-31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Host Names 9-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Names 9-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocol Names 9-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Service Names 9-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Byte–Order Translation 9-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Internet Address Translation 9-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Host and Domain Names 9-35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Domain Name Resolution 9-36. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Examples 9-38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of Socket Programming References 9-39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kernel Service Subroutines 9-39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Library Subroutines 9-39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Header Files 9-41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocols 9-41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example Programs 9-41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socketpair Communication Example 9-42. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reading Internet Datagrams Example Program 9-43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sending Internet Datagrams Example Program 9-44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reading UNIX Datagrams Example Program 9-45. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sending UNIX Datagrams Example Program 9-46. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initiating Internet Stream Connections Example Program 9-47. . . . . . . . . . . . . . . . . . . . . .
Accepting Internet Stream Connections Example Program 9-48. . . . . . . . . . . . . . . . . . . .
Checking for Pending Connections Example Program 9-50. . . . . . . . . . . . . . . . . . . . . . . .
Initiating UNIX Stream Connections Example Program 9-52. . . . . . . . . . . . . . . . . . . . . . . .
Accepting UNIX Stream Connections Example Program 9-53. . . . . . . . . . . . . . . . . . . . . .
Sending Data on an ATM Socket PVC Client Example Program 9-54. . . . . . . . . . . . . . . .
Receiving Data on an ATM Socket PVC Server Example Program 9-56. . . . . . . . . . . . .
Sending Data on an ATM Socket Rate–Enforced SVC Client Example Program 9-58. .
Receiving Data on an ATM Socket Rate–Enforced SVC Server Example Program 9-63
Sending Data on an ATM Socket SVC Client Example Program 9-66. . . . . . . . . . . . . . . .
Receiving Data on an ATM Socket SVC Server Example Program 9-69. . . . . . . . . . . . .
Receiving Packets Over Ethernet Example Program 9-72. . . . . . . . . . . . . . . . . . . . . . . . . .
Sending Packets Over Ethernet Example Program 9-74. . . . . . . . . . . . . . . . . . . . . . . . . . .
Analyzing Packets Over the Network Example Program 9-77. . . . . . . . . . . . . . . . . . . . . . .
Chapter 10. STREAMS 10-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STREAMS Introduction 10-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stream Head 10-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modules 10-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stream End 10-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STREAMS Modularity 10-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Preface
xiii
STREAMS Facilities 10-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Benefits and Features of STREAMS 10-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Service Interfaces 10-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Manipulating Modules 10-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocol Substitution 10-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Module Reusability 10-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STREAMS Flow Control 10-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STREAMS Synchronization 10-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Synchronization Mechanism 10-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Synchronization of timeout and bufcall Utilities 10-11. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Synchronization Levels 10-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Per–stream Synchronization 10-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Queue–Welding Mechanism 10-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using STREAMS 10-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Subroutines 10-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Calls 10-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
streamio Operations 10-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STREAMS Tunable Parameters 10-19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Load–Time Parameters 10-19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Run–Time Parameters 10-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
streamio (STREAMS ioctl) Operations 10-22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Building STREAMS 10-23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Expanded Streams 10-23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pushable Modules 10-24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STREAMS Messages 10-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message Blocks 10-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message Allocation 10-26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message Types 10-26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message Queue Priority 10-27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sending and Receiving Messages 10-28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Put and Service Procedures 10-29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Put Procedures 10-29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Service Procedures 10-29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STREAMS Drivers and Modules 10-31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Environment 10-31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drivers 10-32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modules 10-32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64–Bit Support 10-33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
log Device Driver 10-35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kernel Interface 10-35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User Interface 10-35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Examples 10-36. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring Drivers and Modules in the Portable Streams Environment 10-37. . . . . . . . .
Loading and Unloading PSE 10-37. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loading and Unloading a Driver or Module 10-37. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PSE Configuration Routines 10-37. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
An Asynchronous Protocol STREAMS Example 10-40. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initializing the Stream 10-40. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Messages in the Example 10-41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Other User Functions 10-43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kernel Processing 10-43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Differences Between Portable Streams Environment and V.4 STREAMS 10-46. . . . . . . .
Extensions to STREAMS 10-46. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Differences in PSE 10-46. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of Streams Commands 10-48. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xiv
AIX Communications Programming Concepts
Configuring 10-48. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Maintaining 10-48. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of STREAMS Programming References 10-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operation 10-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modules and Drivers 10-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Subroutines 10-49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Function 10-50. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Calls 10-50. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilities 10-50. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transport Service Library Interface Overview 10-52. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TLI and XTI Characteristics 10-53. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 11. Transmission Control Protocol/Internet Protocol 11-1. . . . . . . . . . . . . .
Lists of Programming References 11-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Methods 11-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Files and File Formats 11-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RFCs 11-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 12. Xerox Network Systems 12-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Implementation 12-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Configuration 12-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Routing 12-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XNS Addresses 12-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Systems Protocol Family 12-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage Conventions 12-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocols 12-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sequence Packet Protocol 12-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage Conventions 12-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Socket Types with SPP 12-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Options for SPP 12-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Error Codes 12-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
nsip Interface 12-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage Conventions 12-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Error Codes 12-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Internet Datagram Protocol 12-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage Conventions 12-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Socket Options for IDP 12-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Error Codes 12-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Index X-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Link Control
1-1
Chapter 1. Data Link Control
Generic data link control (GDLC) defines a generic interface with a common set of
commands that allows application and kernel users to control DLC device managers within
the operating system.
This chapter discusses the following topics:
Generic Data Link Control Environment Overview
Implementing GDLC Interface
GDLC Interface ioctl Entry Point Operations
GDLC Special Kernel Services
GDLC Problem Determination
Data Link Control Programming and Reference Information
Token–Ring Data Link Control Overview
DLCTOKEN Device Manager Nodes
DLCTOKEN Device Manager Functions
DLCTOKEN Protocol Support
DLCTOKEN Name–Discovery Service
DLCTOKEN Direct Network Services
DLCTOKEN Connection Contention
Initiating DLCTOKEN Link Sessions
Stopping DLCTOKEN LInk Sessions
DLCTOKEN Programming Interfaces
IEEE 802.3 Ethernet Data Link Control Overview
DLC8023 Device Manager Nodes
DLC8023 Device Manager Functions
DLC8023 Protocol Support
DLC8023 Name–Discovery Services
DLC8023 Direct Network Services
DLC8023 Connection Contention
DLC8023 Link Sessions
DLC8023 Programming Interfaces
Standard Ethernet Data Link Control Overview
DLCETHER Device Manager Nodes
DLCETHER Device Manager Functions
DLCETHER Protocol Support
DLCETHER Name–Discovery Services
DLCETHER Direct Network Services
1-2
AIX Communications Programming Concepts
DLCETHER Connection Contention
DLCETHER Link Session Initiation
DLCETHER Link Session Termination
DLCETHER Programming Interfaces
Synchronous Data Link Control Overview
DLCSDLC Device Manager Functions
DLCSDLC Protocol Support
DLCSDLC Programming Interfaces
DLCSDLC Asynchronous Function Subroutine Calls
Qualified Logical Link Control (DLCQLLC) Overview
Data Link Control FDDI (DLC FDDI) Overview
DLC FDDI Device Manager Nodes
DLC FDDI Device Manager Functions
DLC FDDI Protocol Support
DLC FDDI Name–Discovery Services
DLC FDDI Direct Network Services
DLC FDDI Connection Contention
DLC FDDI Link Sessions
DLC FDDI Programming Interfaces
Data Link Control
1-3
Generic Data Link Control Environment Overview
Generic data link control (GDLC) defines a generic interface with a common set of
commands that allows application and kernel users to control DLC device managers within
the operating system.
The GDLC interface specifies requirements for entry point definitions, functions provided,
and data structures for all DLC device managers. DLCs that conform to the GDLC interface
include:
TOKEN (token–ring)
8023 (IEEE 802.3 for Ethernet)
ETHER (Standard Ethernet)
SDLC (Synchronous Data Link Control)
QLLC (Qualified Logical Link Control)
FDDI (Fiber Distributed Data Interface)
DLC device managers perform higher layer protocols and functions beyond the scope of a
kernel device driver. However, the managers reside within the kernel for maximum
performance and use a kernel device driver for their I/O requests to the adapter. A DLC user
is located above or within the kernel.
SDLC and IEEE 802.2 data link control are examples of DLC device managers. Each DLC
device manager operates with a specific device driver or set of device drivers. SDLC, for
example, operates with the Multiprotocol device driver for the system’s product and its
associated adapter.
For more information about the GDLC environment, see:
Implementing GDLC Interface, on page 1-6
GDLC Interface ioctl Entry Point Operations, on page 1-7
GDLC Special Kernel Services, on page 1-10
GDLC Problem Determination, on page 1-11
Data Link Control Programming and Reference Information, on page 1-14
The DLC Device Manager Environment figure illustrates the basic structure of a DLC
environment. Users within the kernel have access to the Communications memory buffers
(mbufs) and call the dd entry points by way of the fp kernel services. Users above the
kernel access the standard interface–to–kernel device drivers, and the file system calls the
dd entry points. Data transfers require data movements between user and kernel space.
1-4
AIX Communications Programming Concepts
Application User
Kernel User
File I/O Subsystem
DLC Device Manager
Comm I/O Device Driver
Adapter
Buffer
Pool
Hardware
DLC Device Manager Environment
Kernel
The components of the DLC device manager environment are:
application user Resides above the kernel as an application or access
method.
kernel user Resides within the kernel as a kernel process or device
manager.
file I/O subsystem Converts the file–descriptor and file–pointer subroutines to
file–pointer accesses of the switch table.
buffer pool Provides data–buffer services for the communications
subsystem.
comm I/O device driver Controls hardware adapter input/output (I/O) and direct
memory access (DMA) registers, and routes receive
packets to multiple DLCs.
adapter Attaches to the communications media.
A device manager written in accordance with GDLC specifications runs on all the operating
system hardware configurations containing a communications device driver and its target
adapter. Each device manager supports multiple users above and below the kernel. In
general, users operate concurrently over a single adapter, or each user operates over
multiple adapters. DLC device managers vary based on their protocol constraints.
The Multiple User and Multiple Adapter Configuration figure illustrates a multiple user
configuration.
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18
  • Page 19 19
  • Page 20 20
  • Page 21 21
  • Page 22 22
  • Page 23 23
  • Page 24 24
  • Page 25 25
  • Page 26 26
  • Page 27 27
  • Page 28 28
  • Page 29 29
  • Page 30 30
  • Page 31 31
  • Page 32 32
  • Page 33 33
  • Page 34 34
  • Page 35 35
  • Page 36 36
  • Page 37 37
  • Page 38 38
  • Page 39 39
  • Page 40 40
  • Page 41 41
  • Page 42 42
  • Page 43 43
  • Page 44 44
  • Page 45 45
  • Page 46 46
  • Page 47 47
  • Page 48 48
  • Page 49 49
  • Page 50 50
  • Page 51 51
  • Page 52 52
  • Page 53 53
  • Page 54 54
  • Page 55 55
  • Page 56 56
  • Page 57 57
  • Page 58 58
  • Page 59 59
  • Page 60 60
  • Page 61 61
  • Page 62 62
  • Page 63 63
  • Page 64 64
  • Page 65 65
  • Page 66 66
  • Page 67 67
  • Page 68 68
  • Page 69 69
  • Page 70 70
  • Page 71 71
  • Page 72 72
  • Page 73 73
  • Page 74 74
  • Page 75 75
  • Page 76 76
  • Page 77 77
  • Page 78 78
  • Page 79 79
  • Page 80 80
  • Page 81 81
  • Page 82 82
  • Page 83 83
  • Page 84 84
  • Page 85 85
  • Page 86 86
  • Page 87 87
  • Page 88 88
  • Page 89 89
  • Page 90 90
  • Page 91 91
  • Page 92 92
  • Page 93 93
  • Page 94 94
  • Page 95 95
  • Page 96 96
  • Page 97 97
  • Page 98 98
  • Page 99 99
  • Page 100 100
  • Page 101 101
  • Page 102 102
  • Page 103 103
  • Page 104 104
  • Page 105 105
  • Page 106 106
  • Page 107 107
  • Page 108 108
  • Page 109 109
  • Page 110 110
  • Page 111 111
  • Page 112 112
  • Page 113 113
  • Page 114 114
  • Page 115 115
  • Page 116 116
  • Page 117 117
  • Page 118 118
  • Page 119 119
  • Page 120 120
  • Page 121 121
  • Page 122 122
  • Page 123 123
  • Page 124 124
  • Page 125 125
  • Page 126 126
  • Page 127 127
  • Page 128 128
  • Page 129 129
  • Page 130 130
  • Page 131 131
  • Page 132 132
  • Page 133 133
  • Page 134 134
  • Page 135 135
  • Page 136 136
  • Page 137 137
  • Page 138 138
  • Page 139 139
  • Page 140 140
  • Page 141 141
  • Page 142 142
  • Page 143 143
  • Page 144 144
  • Page 145 145
  • Page 146 146
  • Page 147 147
  • Page 148 148
  • Page 149 149
  • Page 150 150
  • Page 151 151
  • Page 152 152
  • Page 153 153
  • Page 154 154
  • Page 155 155
  • Page 156 156
  • Page 157 157
  • Page 158 158
  • Page 159 159
  • Page 160 160
  • Page 161 161
  • Page 162 162
  • Page 163 163
  • Page 164 164
  • Page 165 165
  • Page 166 166
  • Page 167 167
  • Page 168 168
  • Page 169 169
  • Page 170 170
  • Page 171 171
  • Page 172 172
  • Page 173 173
  • Page 174 174
  • Page 175 175
  • Page 176 176
  • Page 177 177
  • Page 178 178
  • Page 179 179
  • Page 180 180
  • Page 181 181
  • Page 182 182
  • Page 183 183
  • Page 184 184
  • Page 185 185
  • Page 186 186
  • Page 187 187
  • Page 188 188
  • Page 189 189
  • Page 190 190
  • Page 191 191
  • Page 192 192
  • Page 193 193
  • Page 194 194
  • Page 195 195
  • Page 196 196
  • Page 197 197
  • Page 198 198
  • Page 199 199
  • Page 200 200
  • Page 201 201
  • Page 202 202
  • Page 203 203
  • Page 204 204
  • Page 205 205
  • Page 206 206
  • Page 207 207
  • Page 208 208
  • Page 209 209
  • Page 210 210
  • Page 211 211
  • Page 212 212
  • Page 213 213
  • Page 214 214
  • Page 215 215
  • Page 216 216
  • Page 217 217
  • Page 218 218
  • Page 219 219
  • Page 220 220
  • Page 221 221
  • Page 222 222
  • Page 223 223
  • Page 224 224
  • Page 225 225
  • Page 226 226
  • Page 227 227
  • Page 228 228
  • Page 229 229
  • Page 230 230
  • Page 231 231
  • Page 232 232
  • Page 233 233
  • Page 234 234
  • Page 235 235
  • Page 236 236
  • Page 237 237
  • Page 238 238
  • Page 239 239
  • Page 240 240
  • Page 241 241
  • Page 242 242
  • Page 243 243
  • Page 244 244
  • Page 245 245
  • Page 246 246
  • Page 247 247
  • Page 248 248
  • Page 249 249
  • Page 250 250
  • Page 251 251
  • Page 252 252
  • Page 253 253
  • Page 254 254
  • Page 255 255
  • Page 256 256
  • Page 257 257
  • Page 258 258
  • Page 259 259
  • Page 260 260
  • Page 261 261
  • Page 262 262
  • Page 263 263
  • Page 264 264
  • Page 265 265
  • Page 266 266
  • Page 267 267
  • Page 268 268
  • Page 269 269
  • Page 270 270
  • Page 271 271
  • Page 272 272
  • Page 273 273
  • Page 274 274
  • Page 275 275
  • Page 276 276
  • Page 277 277
  • Page 278 278
  • Page 279 279
  • Page 280 280
  • Page 281 281
  • Page 282 282
  • Page 283 283
  • Page 284 284
  • Page 285 285
  • Page 286 286
  • Page 287 287
  • Page 288 288
  • Page 289 289
  • Page 290 290
  • Page 291 291
  • Page 292 292
  • Page 293 293
  • Page 294 294
  • Page 295 295
  • Page 296 296
  • Page 297 297
  • Page 298 298
  • Page 299 299
  • Page 300 300
  • Page 301 301
  • Page 302 302
  • Page 303 303
  • Page 304 304
  • Page 305 305
  • Page 306 306
  • Page 307 307
  • Page 308 308
  • Page 309 309
  • Page 310 310
  • Page 311 311
  • Page 312 312
  • Page 313 313
  • Page 314 314
  • Page 315 315
  • Page 316 316
  • Page 317 317
  • Page 318 318
  • Page 319 319
  • Page 320 320
  • Page 321 321
  • Page 322 322
  • Page 323 323
  • Page 324 324
  • Page 325 325
  • Page 326 326
  • Page 327 327
  • Page 328 328
  • Page 329 329
  • Page 330 330
  • Page 331 331
  • Page 332 332
  • Page 333 333
  • Page 334 334
  • Page 335 335
  • Page 336 336
  • Page 337 337
  • Page 338 338
  • Page 339 339
  • Page 340 340
  • Page 341 341
  • Page 342 342
  • Page 343 343
  • Page 344 344
  • Page 345 345
  • Page 346 346
  • Page 347 347
  • Page 348 348
  • Page 349 349
  • Page 350 350
  • Page 351 351
  • Page 352 352
  • Page 353 353
  • Page 354 354
  • Page 355 355
  • Page 356 356
  • Page 357 357
  • Page 358 358
  • Page 359 359
  • Page 360 360
  • Page 361 361
  • Page 362 362
  • Page 363 363
  • Page 364 364
  • Page 365 365
  • Page 366 366
  • Page 367 367
  • Page 368 368
  • Page 369 369
  • Page 370 370
  • Page 371 371
  • Page 372 372
  • Page 373 373
  • Page 374 374
  • Page 375 375
  • Page 376 376
  • Page 377 377
  • Page 378 378
  • Page 379 379
  • Page 380 380
  • Page 381 381
  • Page 382 382
  • Page 383 383
  • Page 384 384
  • Page 385 385
  • Page 386 386
  • Page 387 387
  • Page 388 388
  • Page 389 389
  • Page 390 390
  • Page 391 391
  • Page 392 392
  • Page 393 393
  • Page 394 394
  • Page 395 395
  • Page 396 396
  • Page 397 397
  • Page 398 398
  • Page 399 399
  • Page 400 400
  • Page 401 401
  • Page 402 402
  • Page 403 403
  • Page 404 404
  • Page 405 405
  • Page 406 406
  • Page 407 407
  • Page 408 408
  • Page 409 409
  • Page 410 410
  • Page 411 411
  • Page 412 412
  • Page 413 413
  • Page 414 414
  • Page 415 415
  • Page 416 416
  • Page 417 417
  • Page 418 418
  • Page 419 419
  • Page 420 420
  • Page 421 421
  • Page 422 422
  • Page 423 423
  • Page 424 424
  • Page 425 425
  • Page 426 426
  • Page 427 427
  • Page 428 428
  • Page 429 429
  • Page 430 430
  • Page 431 431
  • Page 432 432

Bull AIX 4.3 - Communications Programming Guide

Type
Programming Guide

Ask a question and I''ll find the answer in the document

Finding information in a document is now easier with AI