HP UX 11i v2 Networking Software manual Appendix a 145

Page 145

 

 

 

Sample Programs

 

 

 

Connection Mode

#define GOT_CTRL

1

/* message has only a control part */

#define GOT_DATA

2

/* message

has only a data part */

#define GOT_BOTH

3

/* message

has both control and data parts */

int

 

 

get_msg(fd)

 

 

int

fd;

/* file descriptor */

{

 

 

int

flags = 0;

/* 0 ---> get any available message */

int

result = 0;

/* return value */

/*

 

 

zero first byte of control area so the caller can call check_ctrl without checking the get_msg return value; if there was only data in the message and the user was expecting control or control + data, then when he calls check_ctrl it will compare the expected primitive zero and print information about the primitive that it got.

*/

ctrl_area[0] = 0;

/* call getmsg and check for an error */ if(getmsg(fd, &ctrl_buf, &data_buf, &flags) < 0) {

printf(”error: getmsg failed, errno = %d\n”, errno); exit(1);

}

if(ctrl_buf.len > 0) { result = GOT_CTRL;

}

if(data_buf.len > 0) { result = GOT_DATA;

}

return(result);

}

/************************************************************************** check that control message is the expected message

**************************************************************************/

void

 

 

check_ctrl(ex_prim)

 

int

ex_prim;

/* the expected primitive */

{

 

 

dl_error_ack_t

*err_ack = (dl_error_ack_t *)ctrl_area;

/* did we get the expected primitive? */ if(err_ack->dl_primitive != ex_prim) {

/* did we get a control part */ if(ctrl_buf.len) {

/* yup; is it an ERROR_ACK? */

if(err_ack->dl_primitive == DL_ERROR_ACK) { /* yup; format the ERROR_ACK info */ printf(”error: expected primitive 0x%02x, ”,

ex_prim);

printf(”got DL_ERROR_ACK\n”);

printf(” dl_error_primitive = 0x%02x\n”, err_ack->dl_error_primitive);

printf(” dl_errno = 0x%02x\n”, err_ack->dl_errno);

printf(” dl_unix_errno = %d\n”,

Appendix A

145

Image 145
Contents Edition Dlpi Programmer’s GuideLegal Notices Page Page Contents Contents Contents Sample Programs Printing History Page Appendix a Sample Programs PrefacePage Introduction to Dlpi Introduction to Dlpi HP Dlpi Features Header Files Device File FormatData Link Layer Service InterfaceDlpi Modes of Communication Connection-mode ServiceData Link Layer Dlpi Addressing Connectionless-mode ServicePhysical Attachment Identification HP PPA Format HP’s Dlsap Address Format 802.3, Ethernet, Token Ring, Fddi Data Link User IdentificationHP’s Dlsap Address Format for Fibre Channel Dlsap Promiscuous Mode Clarifications Dlpi Services Dlinforeq DlerrorackDlinfoack DlhpppareqDlresetind DlresetreqDlresetres DlresetconInformation Reporting Service Local Management ServicesDlhprawdatareq DlhprawdataindBind Service Attach ServiceReserved IEEESAPS/Ethertypes BindingSnap Message Flow Binding a Stream to a Dlsap Message Flow Enabling a Specific Multicast Address on a Connection Establishment Service Connection-mode Services12 Message Flow Successful Connection Establishment Connection Handoff13 Message Flow Token Retrieval 16 Message Flow Both Primitives are Destroyed by Provider 19 Message Flow Normal Data Transfer Data Transfer Service20 Message Flow DLS User-Invoked Connection Release Connection Release ServiceReset Service 23 Message Flow DLS User-Invoked Connection Reset Connectionless Data Transfer Connectionless-mode ServicesError Reporting Service Raw-mode ServicesRaw-mode Data Transfer XID and Test ServiceXID and Test Packet Handling 31 Message Flow XID ServiceAn Example 32 Message Flow Test Service33 Message Flow a Connection-Mode Example Dlpi Primitives Dlpi Primitives PPA Initialization/De-initialization Local Management PrimitivesDlhpppareq Dlhpppaack Dlhpppaack MTU DlinforeqDlinfoack Dltpb DlcsmacdDltpr DlmetroDlctca DlcharDlfddi DlotherDlacldls DlhprawdlsDlunknown DLSTYLE2 DLSTYLE1Dlattachreq DlaccessDlbadppa Dloutstate DldetachreqDlsyserr Dlbindreq Dlinitfailed DlbadaddrDlnotinit Dlbindack Dlunbindreq Dlsubsbindreq Dlhierarchicalbind DlpeerbindDltoomany DlsubsbindackDlsubsunbindreq Dlenabmultireq Dlnotsupported DldisabmultireqDlnotenab DlpromisconreqDlpromiscsap DlpromiscphysDlpromiscmulti Dlpromiscoffreq Dlokack Dlerrorack Dlphysaddrreq Dlfactphysaddr Dlcurrphysaddr Dlsetphysaddrreq DlphysaddrackDlphysaddrack DlphysaddrreqDlsetphysaddrreq Dlgetstatisticsack DlgetstatisticsreqDlbusy DlgetstatisticsreqDlgetstatisticsack DlhpmulticastlistreqDlhpmulticastlistack Dlhpmulticastlistack Dlunitdatareq Connectionless-mode Service PrimitivesDlbaddata Dlunitdataind Dluderrorind Message is valid in state Dlidle Dlhprawdatareq Raw Mode Service PrimitivesDlbadprim DlhprawdataindRaw Mode Service Primitives Connection-Oriented Dlpi Extensions Connection-mode Service PrimitivesDlhpinforeq Dlhpinforeq DlhpinfoackDlhpinfoack Connection-mode Service Primitives Connection-mode Service Primitives Dlhpsetacktoreq DlhpsetacktoreqDlhpsetptoreq DlhpsetptoreqDlhpsetbusytoreq DlhpsetrejtoreqDlhpsetrejtoreq Dlhpsetbusytoreq DlhpsetsendacktoreqDlhpsetsendacktoreq DlhpsetmaxretriesreqDlhpsetmaxretriesreq DLOUTCONPENDING, Dlinconpending DlhpsetackthreshreqDlhpsetlocalwinreq Dlhpsetremotewinreq Dlhpsetremotewinreq DlhpclearstatsreqDlhpclearstatsreq DlhpsetlocalbusyreqDlhpsetlocalbusyreq Dlhpclearlocalbusyreq DlhpclearlocalbusyreqDlconnectreq Dlbadqosparam DlconnectindDlbadqostype 112 Dlconnectres 114 Dlbadtoken DlconnectconDlbadcorr Dlpending116 Dltokenack DltokenreqDldatareq Dldisconnectreq Dldataind120 Dldisconnectind Dlresetreq Dlresetind Dlresetres Dlresetcon 126 Dltestreq Primitives to Handle XID and Test OperationsDltestauto DltestindChapter 129 Dltestres Dltestcon Dlxidreq Dlxidauto Dlxidind134 Dlpollfinal DlxidresDlxidcon Chapter 137 Dlpi States Dlresetcon Prov Reset Dlprovreset User Reset DluserresetDlresetres Resetres Udqos Pend DludqosPend Pending DLDISCON9Dlinconpending DLDISCON11Chapter 141 142 Sample Programs Longareasize Connection ModeAppendix a 145 146 Appendix a 147 148 Appendix a 149 150 Appendix a 151 152 Appendix a 153 154 Appendix a 155 Snap SAP Connectionless ModeAppendix a 157 158 Appendix a 159 160 Appendix a 161 162 Appendix a 163 164 Appendix a 165 166 Raw Mode 168 Appendix a 169 170 Appendix a 171 Raw Mode 172 Connection establishment Glossary174 Glossary Index
Related manuals
Manual 94 pages 16.8 Kb Manual 74 pages 39 Kb Manual 236 pages 18.16 Kb Manual 12 pages 39.66 Kb Manual 28 pages 49.76 Kb