Bull AIX 4.3 - Communications Programming Guide

  • Hello! I am an AI chatbot trained to assist you with the Bull AIX 4.3 - Communications Programming Guide. I’ve already reviewed the document and can help you find the information you need or explain it in simple terms. Just ask your questions, and providing more details will help me assist you more effectively!
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.
1/432