HP 800 HP DLPI Programmer's Guide - Page 200

connect_reqsend_fd, rcdlsap, rcdlsap_len, The receiver control stream gets a CONNECT_IND.

Page 200 highlights

Sample Programs Connection Mode Example bound with max_conind = 0 (the "data" stream). The connect indication will be handed off from the control stream to the data stream. We initially open only the sending stream and the receiving control stream. */ /* First, we must open the DLPI device file, /dev/dlpi, and attach to a PPA. attach will open /dev/dlpi, find the first PPA with the DL_HP_PPA_INFO primitive, and attach to that PPA. attach() returns the file descriptor for the stream. */ send_fd = attach(); recv_c_fd = attach(); /* Now we must bind the streams to saps. The bind function will return the local DLSAP and its length for each stream in the last two arguments. Only the receiving control stream has a non-zero max_conind. */ bind(send_fd, SEND_SAP, 0, DL_CODLS, sdlsap, &sdlsap_len); bind(recv_c_fd, RECV_SAP, 1, DL_CODLS, rcdlsap, &rcdlsap_len); /* Start the connection establishment process by sending a CONNECT_REQ from the sender to the receiver control stream. */ connect_req(send_fd, rcdlsap, rcdlsap_len); /* The receiver control stream gets a CONNECT_IND. We need the correlation number to relate the CONNECT_IND to the CONNECT_RES we will send down later. */ correlation = connect_ind(recv_c_fd); /* We want to handle the actual data transfer over a dedicated receiver stream. Here, we attach and bind a second stream on the receivers sap with max_conind = 0. */ recv_d_fd = attach(); bind(recv_d_fd, RECV_SAP, 0, DL_CODLS, rddlsap, &rddlsap_len); /* 200 Appendix A

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226

Sample Programs
Connection Mode Example
Appendix A
200
bound with max_conind = 0 (the "data" stream).
The connect indication
will be handed off from the control stream to the data stream.
We initially open only the sending stream and the receiving control
stream.
*/
/*
First, we must open the DLPI device file, /dev/dlpi, and attach
to a PPA.
attach will open /dev/dlpi, find the first PPA
with the DL_HP_PPA_INFO primitive, and attach to that PPA.
attach() returns the file descriptor for the stream.
*/
send_fd = attach();
recv_c_fd = attach();
/*
Now we must bind the streams to saps.
The bind function will
return the local DLSAP and its length for each stream in the last
two arguments.
Only the receiving control stream has a non-zero
max_conind.
*/
bind(send_fd, SEND_SAP, 0, DL_CODLS, sdlsap, &sdlsap_len);
bind(recv_c_fd, RECV_SAP, 1, DL_CODLS, rcdlsap, &rcdlsap_len);
/*
Start the connection establishment process by sending a CONNECT_REQ
from the sender to the receiver control stream.
*/
connect_req(send_fd, rcdlsap, rcdlsap_len);
/*
The receiver control stream gets a CONNECT_IND.
We need the
correlation number to relate the CONNECT_IND to the CONNECT_RES
we will send down later.
*/
correlation = connect_ind(recv_c_fd);
/*
We want to handle the actual data transfer over a dedicated
receiver stream.
Here, we attach and bind a second stream on
the receivers sap with max_conind = 0.
*/
recv_d_fd = attach();
bind(recv_d_fd, RECV_SAP, 0, DL_CODLS, rddlsap, &rddlsap_len);
/*