44
44
struct lapb_frame *frame)
46
46
switch (frame->type) {
49
printk(KERN_DEBUG "lapb: (%p) S0 RX SABM(%d)\n",
50
lapb->dev, frame->pf);
52
if (lapb->mode & LAPB_EXTENDED) {
54
printk(KERN_DEBUG "lapb: (%p) S0 TX DM(%d)\n",
55
lapb->dev, frame->pf);
57
lapb_send_control(lapb, LAPB_DM, frame->pf,
61
printk(KERN_DEBUG "lapb: (%p) S0 TX UA(%d)\n",
62
lapb->dev, frame->pf);
65
printk(KERN_DEBUG "lapb: (%p) S0 -> S3\n",
68
lapb_send_control(lapb, LAPB_UA, frame->pf,
70
lapb_stop_t1timer(lapb);
71
lapb_stop_t2timer(lapb);
72
lapb->state = LAPB_STATE_3;
73
lapb->condition = 0x00;
78
lapb_connect_indication(lapb, LAPB_OK);
84
printk(KERN_DEBUG "lapb: (%p) S0 RX SABME(%d)\n",
85
lapb->dev, frame->pf);
87
if (lapb->mode & LAPB_EXTENDED) {
89
printk(KERN_DEBUG "lapb: (%p) S0 TX UA(%d)\n",
90
lapb->dev, frame->pf);
93
printk(KERN_DEBUG "lapb: (%p) S0 -> S3\n",
96
lapb_send_control(lapb, LAPB_UA, frame->pf,
98
lapb_stop_t1timer(lapb);
99
lapb_stop_t2timer(lapb);
100
lapb->state = LAPB_STATE_3;
101
lapb->condition = 0x00;
106
lapb_connect_indication(lapb, LAPB_OK);
109
printk(KERN_DEBUG "lapb: (%p) S0 TX DM(%d)\n",
110
lapb->dev, frame->pf);
112
lapb_send_control(lapb, LAPB_DM, frame->pf,
119
printk(KERN_DEBUG "lapb: (%p) S0 RX DISC(%d)\n",
120
lapb->dev, frame->pf);
121
printk(KERN_DEBUG "lapb: (%p) S0 TX UA(%d)\n",
122
lapb->dev, frame->pf);
124
lapb_send_control(lapb, LAPB_UA, frame->pf,
49
printk(KERN_DEBUG "lapb: (%p) S0 RX SABM(%d)\n",
50
lapb->dev, frame->pf);
52
if (lapb->mode & LAPB_EXTENDED) {
54
printk(KERN_DEBUG "lapb: (%p) S0 TX DM(%d)\n",
55
lapb->dev, frame->pf);
57
lapb_send_control(lapb, LAPB_DM, frame->pf,
61
printk(KERN_DEBUG "lapb: (%p) S0 TX UA(%d)\n",
62
lapb->dev, frame->pf);
65
printk(KERN_DEBUG "lapb: (%p) S0 -> S3\n", lapb->dev);
67
lapb_send_control(lapb, LAPB_UA, frame->pf,
69
lapb_stop_t1timer(lapb);
70
lapb_stop_t2timer(lapb);
71
lapb->state = LAPB_STATE_3;
72
lapb->condition = 0x00;
77
lapb_connect_indication(lapb, LAPB_OK);
83
printk(KERN_DEBUG "lapb: (%p) S0 RX SABME(%d)\n",
84
lapb->dev, frame->pf);
86
if (lapb->mode & LAPB_EXTENDED) {
88
printk(KERN_DEBUG "lapb: (%p) S0 TX UA(%d)\n",
89
lapb->dev, frame->pf);
92
printk(KERN_DEBUG "lapb: (%p) S0 -> S3\n", lapb->dev);
94
lapb_send_control(lapb, LAPB_UA, frame->pf,
96
lapb_stop_t1timer(lapb);
97
lapb_stop_t2timer(lapb);
98
lapb->state = LAPB_STATE_3;
99
lapb->condition = 0x00;
104
lapb_connect_indication(lapb, LAPB_OK);
107
printk(KERN_DEBUG "lapb: (%p) S0 TX DM(%d)\n",
108
lapb->dev, frame->pf);
110
lapb_send_control(lapb, LAPB_DM, frame->pf,
117
printk(KERN_DEBUG "lapb: (%p) S0 RX DISC(%d)\n",
118
lapb->dev, frame->pf);
119
printk(KERN_DEBUG "lapb: (%p) S0 TX UA(%d)\n",
120
lapb->dev, frame->pf);
122
lapb_send_control(lapb, LAPB_UA, frame->pf, LAPB_RESPONSE);
140
137
struct lapb_frame *frame)
142
139
switch (frame->type) {
145
printk(KERN_DEBUG "lapb: (%p) S1 RX SABM(%d)\n",
146
lapb->dev, frame->pf);
148
if (lapb->mode & LAPB_EXTENDED) {
150
printk(KERN_DEBUG "lapb: (%p) S1 TX DM(%d)\n",
151
lapb->dev, frame->pf);
153
lapb_send_control(lapb, LAPB_DM, frame->pf,
157
printk(KERN_DEBUG "lapb: (%p) S1 TX UA(%d)\n",
158
lapb->dev, frame->pf);
160
lapb_send_control(lapb, LAPB_UA, frame->pf,
167
printk(KERN_DEBUG "lapb: (%p) S1 RX SABME(%d)\n",
168
lapb->dev, frame->pf);
170
if (lapb->mode & LAPB_EXTENDED) {
172
printk(KERN_DEBUG "lapb: (%p) S1 TX UA(%d)\n",
173
lapb->dev, frame->pf);
175
lapb_send_control(lapb, LAPB_UA, frame->pf,
179
printk(KERN_DEBUG "lapb: (%p) S1 TX DM(%d)\n",
180
lapb->dev, frame->pf);
182
lapb_send_control(lapb, LAPB_DM, frame->pf,
189
printk(KERN_DEBUG "lapb: (%p) S1 RX DISC(%d)\n",
190
lapb->dev, frame->pf);
191
printk(KERN_DEBUG "lapb: (%p) S1 TX DM(%d)\n",
192
lapb->dev, frame->pf);
194
lapb_send_control(lapb, LAPB_DM, frame->pf,
200
printk(KERN_DEBUG "lapb: (%p) S1 RX UA(%d)\n",
201
lapb->dev, frame->pf);
205
printk(KERN_DEBUG "lapb: (%p) S1 -> S3\n",
208
lapb_stop_t1timer(lapb);
209
lapb_stop_t2timer(lapb);
210
lapb->state = LAPB_STATE_3;
211
lapb->condition = 0x00;
216
lapb_connect_confirmation(lapb, LAPB_OK);
222
printk(KERN_DEBUG "lapb: (%p) S1 RX DM(%d)\n",
223
lapb->dev, frame->pf);
227
printk(KERN_DEBUG "lapb: (%p) S1 -> S0\n",
230
lapb_clear_queues(lapb);
231
lapb->state = LAPB_STATE_0;
232
lapb_start_t1timer(lapb);
233
lapb_stop_t2timer(lapb);
234
lapb_disconnect_indication(lapb, LAPB_REFUSED);
142
printk(KERN_DEBUG "lapb: (%p) S1 RX SABM(%d)\n",
143
lapb->dev, frame->pf);
145
if (lapb->mode & LAPB_EXTENDED) {
147
printk(KERN_DEBUG "lapb: (%p) S1 TX DM(%d)\n",
148
lapb->dev, frame->pf);
150
lapb_send_control(lapb, LAPB_DM, frame->pf,
154
printk(KERN_DEBUG "lapb: (%p) S1 TX UA(%d)\n",
155
lapb->dev, frame->pf);
157
lapb_send_control(lapb, LAPB_UA, frame->pf,
164
printk(KERN_DEBUG "lapb: (%p) S1 RX SABME(%d)\n",
165
lapb->dev, frame->pf);
167
if (lapb->mode & LAPB_EXTENDED) {
169
printk(KERN_DEBUG "lapb: (%p) S1 TX UA(%d)\n",
170
lapb->dev, frame->pf);
172
lapb_send_control(lapb, LAPB_UA, frame->pf,
176
printk(KERN_DEBUG "lapb: (%p) S1 TX DM(%d)\n",
177
lapb->dev, frame->pf);
179
lapb_send_control(lapb, LAPB_DM, frame->pf,
186
printk(KERN_DEBUG "lapb: (%p) S1 RX DISC(%d)\n",
187
lapb->dev, frame->pf);
188
printk(KERN_DEBUG "lapb: (%p) S1 TX DM(%d)\n",
189
lapb->dev, frame->pf);
191
lapb_send_control(lapb, LAPB_DM, frame->pf, LAPB_RESPONSE);
196
printk(KERN_DEBUG "lapb: (%p) S1 RX UA(%d)\n",
197
lapb->dev, frame->pf);
201
printk(KERN_DEBUG "lapb: (%p) S1 -> S3\n", lapb->dev);
203
lapb_stop_t1timer(lapb);
204
lapb_stop_t2timer(lapb);
205
lapb->state = LAPB_STATE_3;
206
lapb->condition = 0x00;
211
lapb_connect_confirmation(lapb, LAPB_OK);
217
printk(KERN_DEBUG "lapb: (%p) S1 RX DM(%d)\n",
218
lapb->dev, frame->pf);
222
printk(KERN_DEBUG "lapb: (%p) S1 -> S0\n", lapb->dev);
224
lapb_clear_queues(lapb);
225
lapb->state = LAPB_STATE_0;
226
lapb_start_t1timer(lapb);
227
lapb_stop_t2timer(lapb);
228
lapb_disconnect_indication(lapb, LAPB_REFUSED);
247
241
struct lapb_frame *frame)
249
243
switch (frame->type) {
253
printk(KERN_DEBUG "lapb: (%p) S2 RX {SABM,SABME}(%d)\n",
254
lapb->dev, frame->pf);
255
printk(KERN_DEBUG "lapb: (%p) S2 TX DM(%d)\n",
256
lapb->dev, frame->pf);
247
printk(KERN_DEBUG "lapb: (%p) S2 RX {SABM,SABME}(%d)\n",
248
lapb->dev, frame->pf);
249
printk(KERN_DEBUG "lapb: (%p) S2 TX DM(%d)\n",
250
lapb->dev, frame->pf);
252
lapb_send_control(lapb, LAPB_DM, frame->pf, LAPB_RESPONSE);
257
printk(KERN_DEBUG "lapb: (%p) S2 RX DISC(%d)\n",
258
lapb->dev, frame->pf);
259
printk(KERN_DEBUG "lapb: (%p) S2 TX UA(%d)\n",
260
lapb->dev, frame->pf);
262
lapb_send_control(lapb, LAPB_UA, frame->pf, LAPB_RESPONSE);
267
printk(KERN_DEBUG "lapb: (%p) S2 RX UA(%d)\n",
268
lapb->dev, frame->pf);
272
printk(KERN_DEBUG "lapb: (%p) S2 -> S0\n", lapb->dev);
274
lapb->state = LAPB_STATE_0;
275
lapb_start_t1timer(lapb);
276
lapb_stop_t2timer(lapb);
277
lapb_disconnect_confirmation(lapb, LAPB_OK);
283
printk(KERN_DEBUG "lapb: (%p) S2 RX DM(%d)\n",
284
lapb->dev, frame->pf);
288
printk(KERN_DEBUG "lapb: (%p) S2 -> S0\n", lapb->dev);
290
lapb->state = LAPB_STATE_0;
291
lapb_start_t1timer(lapb);
292
lapb_stop_t2timer(lapb);
293
lapb_disconnect_confirmation(lapb, LAPB_NOTCONNECTED);
302
printk(KERN_DEBUG "lapb: (%p) S2 RX {I,REJ,RNR,RR}(%d)\n",
303
lapb->dev, frame->pf);
304
printk(KERN_DEBUG "lapb: (%p) S2 RX DM(%d)\n",
305
lapb->dev, frame->pf);
258
308
lapb_send_control(lapb, LAPB_DM, frame->pf,
264
printk(KERN_DEBUG "lapb: (%p) S2 RX DISC(%d)\n",
265
lapb->dev, frame->pf);
266
printk(KERN_DEBUG "lapb: (%p) S2 TX UA(%d)\n",
267
lapb->dev, frame->pf);
269
lapb_send_control(lapb, LAPB_UA, frame->pf,
275
printk(KERN_DEBUG "lapb: (%p) S2 RX UA(%d)\n",
276
lapb->dev, frame->pf);
280
printk(KERN_DEBUG "lapb: (%p) S2 -> S0\n",
283
lapb->state = LAPB_STATE_0;
284
lapb_start_t1timer(lapb);
285
lapb_stop_t2timer(lapb);
286
lapb_disconnect_confirmation(lapb, LAPB_OK);
292
printk(KERN_DEBUG "lapb: (%p) S2 RX DM(%d)\n",
293
lapb->dev, frame->pf);
297
printk(KERN_DEBUG "lapb: (%p) S2 -> S0\n",
300
lapb->state = LAPB_STATE_0;
301
lapb_start_t1timer(lapb);
302
lapb_stop_t2timer(lapb);
303
lapb_disconnect_confirmation(lapb,
313
printk(KERN_DEBUG "lapb: (%p) S2 RX {I,REJ,RNR,RR}"
314
"(%d)\n", lapb->dev, frame->pf);
315
printk(KERN_DEBUG "lapb: (%p) S2 RX DM(%d)\n",
316
lapb->dev, frame->pf);
319
lapb_send_control(lapb, LAPB_DM, frame->pf,
338
327
switch (frame->type) {
341
printk(KERN_DEBUG "lapb: (%p) S3 RX SABM(%d)\n",
342
lapb->dev, frame->pf);
344
if (lapb->mode & LAPB_EXTENDED) {
346
printk(KERN_DEBUG "lapb: (%p) S3 TX DM(%d)\n",
347
lapb->dev, frame->pf);
349
lapb_send_control(lapb, LAPB_DM, frame->pf,
353
printk(KERN_DEBUG "lapb: (%p) S3 TX UA(%d)\n",
354
lapb->dev, frame->pf);
356
lapb_send_control(lapb, LAPB_UA, frame->pf,
358
lapb_stop_t1timer(lapb);
359
lapb_stop_t2timer(lapb);
360
lapb->condition = 0x00;
365
lapb_requeue_frames(lapb);
371
printk(KERN_DEBUG "lapb: (%p) S3 RX SABME(%d)\n",
372
lapb->dev, frame->pf);
374
if (lapb->mode & LAPB_EXTENDED) {
376
printk(KERN_DEBUG "lapb: (%p) S3 TX UA(%d)\n",
377
lapb->dev, frame->pf);
379
lapb_send_control(lapb, LAPB_UA, frame->pf,
381
lapb_stop_t1timer(lapb);
382
lapb_stop_t2timer(lapb);
383
lapb->condition = 0x00;
388
lapb_requeue_frames(lapb);
391
printk(KERN_DEBUG "lapb: (%p) S3 TX DM(%d)\n",
392
lapb->dev, frame->pf);
394
lapb_send_control(lapb, LAPB_DM, frame->pf,
401
printk(KERN_DEBUG "lapb: (%p) S3 RX DISC(%d)\n",
402
lapb->dev, frame->pf);
405
printk(KERN_DEBUG "lapb: (%p) S3 -> S0\n",
408
lapb_clear_queues(lapb);
409
lapb_send_control(lapb, LAPB_UA, frame->pf,
411
lapb_start_t1timer(lapb);
412
lapb_stop_t2timer(lapb);
413
lapb->state = LAPB_STATE_0;
414
lapb_disconnect_indication(lapb, LAPB_OK);
419
printk(KERN_DEBUG "lapb: (%p) S3 RX DM(%d)\n",
420
lapb->dev, frame->pf);
423
printk(KERN_DEBUG "lapb: (%p) S3 -> S0\n",
426
lapb_clear_queues(lapb);
427
lapb->state = LAPB_STATE_0;
428
lapb_start_t1timer(lapb);
429
lapb_stop_t2timer(lapb);
430
lapb_disconnect_indication(lapb, LAPB_NOTCONNECTED);
435
printk(KERN_DEBUG "lapb: (%p) S3 RX RNR(%d) R%d\n",
436
lapb->dev, frame->pf, frame->nr);
438
lapb->condition |= LAPB_PEER_RX_BUSY_CONDITION;
439
lapb_check_need_response(lapb, frame->cr, frame->pf);
440
if (lapb_validate_nr(lapb, frame->nr)) {
441
lapb_check_iframes_acked(lapb, frame->nr);
443
lapb->frmr_data = *frame;
444
lapb->frmr_type = LAPB_FRMR_Z;
445
lapb_transmit_frmr(lapb);
447
printk(KERN_DEBUG "lapb: (%p) S3 -> S4\n",
450
lapb_start_t1timer(lapb);
451
lapb_stop_t2timer(lapb);
452
lapb->state = LAPB_STATE_4;
459
printk(KERN_DEBUG "lapb: (%p) S3 RX RR(%d) R%d\n",
460
lapb->dev, frame->pf, frame->nr);
462
lapb->condition &= ~LAPB_PEER_RX_BUSY_CONDITION;
463
lapb_check_need_response(lapb, frame->cr, frame->pf);
464
if (lapb_validate_nr(lapb, frame->nr)) {
465
lapb_check_iframes_acked(lapb, frame->nr);
467
lapb->frmr_data = *frame;
468
lapb->frmr_type = LAPB_FRMR_Z;
469
lapb_transmit_frmr(lapb);
471
printk(KERN_DEBUG "lapb: (%p) S3 -> S4\n",
474
lapb_start_t1timer(lapb);
475
lapb_stop_t2timer(lapb);
476
lapb->state = LAPB_STATE_4;
483
printk(KERN_DEBUG "lapb: (%p) S3 RX REJ(%d) R%d\n",
484
lapb->dev, frame->pf, frame->nr);
486
lapb->condition &= ~LAPB_PEER_RX_BUSY_CONDITION;
487
lapb_check_need_response(lapb, frame->cr, frame->pf);
488
if (lapb_validate_nr(lapb, frame->nr)) {
489
lapb_frames_acked(lapb, frame->nr);
490
lapb_stop_t1timer(lapb);
492
lapb_requeue_frames(lapb);
494
lapb->frmr_data = *frame;
495
lapb->frmr_type = LAPB_FRMR_Z;
496
lapb_transmit_frmr(lapb);
498
printk(KERN_DEBUG "lapb: (%p) S3 -> S4\n",
501
lapb_start_t1timer(lapb);
502
lapb_stop_t2timer(lapb);
503
lapb->state = LAPB_STATE_4;
510
printk(KERN_DEBUG "lapb: (%p) S3 RX I(%d) S%d R%d\n",
511
lapb->dev, frame->pf, frame->ns, frame->nr);
513
if (!lapb_validate_nr(lapb, frame->nr)) {
514
lapb->frmr_data = *frame;
515
lapb->frmr_type = LAPB_FRMR_Z;
516
lapb_transmit_frmr(lapb);
518
printk(KERN_DEBUG "lapb: (%p) S3 -> S4\n",
521
lapb_start_t1timer(lapb);
522
lapb_stop_t2timer(lapb);
523
lapb->state = LAPB_STATE_4;
330
printk(KERN_DEBUG "lapb: (%p) S3 RX SABM(%d)\n",
331
lapb->dev, frame->pf);
333
if (lapb->mode & LAPB_EXTENDED) {
335
printk(KERN_DEBUG "lapb: (%p) S3 TX DM(%d)\n",
336
lapb->dev, frame->pf);
338
lapb_send_control(lapb, LAPB_DM, frame->pf,
342
printk(KERN_DEBUG "lapb: (%p) S3 TX UA(%d)\n",
343
lapb->dev, frame->pf);
345
lapb_send_control(lapb, LAPB_UA, frame->pf,
347
lapb_stop_t1timer(lapb);
348
lapb_stop_t2timer(lapb);
349
lapb->condition = 0x00;
354
lapb_requeue_frames(lapb);
360
printk(KERN_DEBUG "lapb: (%p) S3 RX SABME(%d)\n",
361
lapb->dev, frame->pf);
363
if (lapb->mode & LAPB_EXTENDED) {
365
printk(KERN_DEBUG "lapb: (%p) S3 TX UA(%d)\n",
366
lapb->dev, frame->pf);
368
lapb_send_control(lapb, LAPB_UA, frame->pf,
370
lapb_stop_t1timer(lapb);
371
lapb_stop_t2timer(lapb);
372
lapb->condition = 0x00;
377
lapb_requeue_frames(lapb);
380
printk(KERN_DEBUG "lapb: (%p) S3 TX DM(%d)\n",
381
lapb->dev, frame->pf);
383
lapb_send_control(lapb, LAPB_DM, frame->pf,
390
printk(KERN_DEBUG "lapb: (%p) S3 RX DISC(%d)\n",
391
lapb->dev, frame->pf);
394
printk(KERN_DEBUG "lapb: (%p) S3 -> S0\n", lapb->dev);
396
lapb_clear_queues(lapb);
397
lapb_send_control(lapb, LAPB_UA, frame->pf, LAPB_RESPONSE);
398
lapb_start_t1timer(lapb);
399
lapb_stop_t2timer(lapb);
400
lapb->state = LAPB_STATE_0;
401
lapb_disconnect_indication(lapb, LAPB_OK);
406
printk(KERN_DEBUG "lapb: (%p) S3 RX DM(%d)\n",
407
lapb->dev, frame->pf);
410
printk(KERN_DEBUG "lapb: (%p) S3 -> S0\n", lapb->dev);
412
lapb_clear_queues(lapb);
413
lapb->state = LAPB_STATE_0;
414
lapb_start_t1timer(lapb);
415
lapb_stop_t2timer(lapb);
416
lapb_disconnect_indication(lapb, LAPB_NOTCONNECTED);
421
printk(KERN_DEBUG "lapb: (%p) S3 RX RNR(%d) R%d\n",
422
lapb->dev, frame->pf, frame->nr);
424
lapb->condition |= LAPB_PEER_RX_BUSY_CONDITION;
425
lapb_check_need_response(lapb, frame->cr, frame->pf);
426
if (lapb_validate_nr(lapb, frame->nr)) {
427
lapb_check_iframes_acked(lapb, frame->nr);
429
lapb->frmr_data = *frame;
430
lapb->frmr_type = LAPB_FRMR_Z;
431
lapb_transmit_frmr(lapb);
433
printk(KERN_DEBUG "lapb: (%p) S3 -> S4\n", lapb->dev);
435
lapb_start_t1timer(lapb);
436
lapb_stop_t2timer(lapb);
437
lapb->state = LAPB_STATE_4;
444
printk(KERN_DEBUG "lapb: (%p) S3 RX RR(%d) R%d\n",
445
lapb->dev, frame->pf, frame->nr);
447
lapb->condition &= ~LAPB_PEER_RX_BUSY_CONDITION;
448
lapb_check_need_response(lapb, frame->cr, frame->pf);
449
if (lapb_validate_nr(lapb, frame->nr)) {
450
lapb_check_iframes_acked(lapb, frame->nr);
452
lapb->frmr_data = *frame;
453
lapb->frmr_type = LAPB_FRMR_Z;
454
lapb_transmit_frmr(lapb);
456
printk(KERN_DEBUG "lapb: (%p) S3 -> S4\n", lapb->dev);
458
lapb_start_t1timer(lapb);
459
lapb_stop_t2timer(lapb);
460
lapb->state = LAPB_STATE_4;
467
printk(KERN_DEBUG "lapb: (%p) S3 RX REJ(%d) R%d\n",
468
lapb->dev, frame->pf, frame->nr);
470
lapb->condition &= ~LAPB_PEER_RX_BUSY_CONDITION;
471
lapb_check_need_response(lapb, frame->cr, frame->pf);
472
if (lapb_validate_nr(lapb, frame->nr)) {
473
lapb_frames_acked(lapb, frame->nr);
474
lapb_stop_t1timer(lapb);
476
lapb_requeue_frames(lapb);
478
lapb->frmr_data = *frame;
479
lapb->frmr_type = LAPB_FRMR_Z;
480
lapb_transmit_frmr(lapb);
482
printk(KERN_DEBUG "lapb: (%p) S3 -> S4\n", lapb->dev);
484
lapb_start_t1timer(lapb);
485
lapb_stop_t2timer(lapb);
486
lapb->state = LAPB_STATE_4;
493
printk(KERN_DEBUG "lapb: (%p) S3 RX I(%d) S%d R%d\n",
494
lapb->dev, frame->pf, frame->ns, frame->nr);
496
if (!lapb_validate_nr(lapb, frame->nr)) {
497
lapb->frmr_data = *frame;
498
lapb->frmr_type = LAPB_FRMR_Z;
499
lapb_transmit_frmr(lapb);
501
printk(KERN_DEBUG "lapb: (%p) S3 -> S4\n", lapb->dev);
503
lapb_start_t1timer(lapb);
504
lapb_stop_t2timer(lapb);
505
lapb->state = LAPB_STATE_4;
509
if (lapb->condition & LAPB_PEER_RX_BUSY_CONDITION)
510
lapb_frames_acked(lapb, frame->nr);
512
lapb_check_iframes_acked(lapb, frame->nr);
514
if (frame->ns == lapb->vr) {
516
cn = lapb_data_indication(lapb, skb);
519
* If upper layer has dropped the frame, we
520
* basically ignore any further protocol
521
* processing. This will cause the peer
522
* to re-transmit the frame later like
523
* a frame lost on the wire.
525
if (cn == NET_RX_DROP) {
526
printk(KERN_DEBUG "LAPB: rx congestion\n");
527
if (lapb->condition & LAPB_PEER_RX_BUSY_CONDITION)
528
lapb_frames_acked(lapb, frame->nr);
530
lapb_check_iframes_acked(lapb, frame->nr);
532
if (frame->ns == lapb->vr) {
534
cn = lapb_data_indication(lapb, skb);
537
* If upper layer has dropped the frame, we
538
* basically ignore any further protocol
539
* processing. This will cause the peer
540
* to re-transmit the frame later like
541
* a frame lost on the wire.
543
if (cn == NET_RX_DROP) {
545
"LAPB: rx congestion\n");
529
lapb->vr = (lapb->vr + 1) % modulus;
530
lapb->condition &= ~LAPB_REJECT_CONDITION;
532
lapb_enquiry_response(lapb);
534
if (!(lapb->condition &
535
LAPB_ACK_PENDING_CONDITION)) {
536
lapb->condition |= LAPB_ACK_PENDING_CONDITION;
537
lapb_start_t2timer(lapb);
548
lapb->vr = (lapb->vr + 1) % modulus;
549
lapb->condition &= ~LAPB_REJECT_CONDITION;
541
if (lapb->condition & LAPB_REJECT_CONDITION) {
551
543
lapb_enquiry_response(lapb);
553
if (!(lapb->condition &
554
LAPB_ACK_PENDING_CONDITION)) {
555
lapb->condition |= LAPB_ACK_PENDING_CONDITION;
556
lapb_start_t2timer(lapb);
560
if (lapb->condition & LAPB_REJECT_CONDITION) {
562
lapb_enquiry_response(lapb);
564
545
#if LAPB_DEBUG > 1
566
"lapb: (%p) S3 TX REJ(%d) R%d\n",
567
lapb->dev, frame->pf, lapb->vr);
547
"lapb: (%p) S3 TX REJ(%d) R%d\n",
548
lapb->dev, frame->pf, lapb->vr);
569
lapb->condition |= LAPB_REJECT_CONDITION;
570
lapb_send_control(lapb, LAPB_REJ,
573
lapb->condition &= ~LAPB_ACK_PENDING_CONDITION;
550
lapb->condition |= LAPB_REJECT_CONDITION;
551
lapb_send_control(lapb, LAPB_REJ, frame->pf,
553
lapb->condition &= ~LAPB_ACK_PENDING_CONDITION;
580
printk(KERN_DEBUG "lapb: (%p) S3 RX FRMR(%d) %02X "
581
"%02X %02X %02X %02X\n", lapb->dev, frame->pf,
582
skb->data[0], skb->data[1], skb->data[2],
583
skb->data[3], skb->data[4]);
585
lapb_establish_data_link(lapb);
587
printk(KERN_DEBUG "lapb: (%p) S3 -> S1\n",
590
lapb_requeue_frames(lapb);
591
lapb->state = LAPB_STATE_1;
596
printk(KERN_DEBUG "lapb: (%p) S3 RX ILLEGAL(%d)\n",
597
lapb->dev, frame->pf);
599
lapb->frmr_data = *frame;
600
lapb->frmr_type = LAPB_FRMR_W;
601
lapb_transmit_frmr(lapb);
603
printk(KERN_DEBUG "lapb: (%p) S3 -> S4\n", lapb->dev);
605
lapb_start_t1timer(lapb);
606
lapb_stop_t2timer(lapb);
607
lapb->state = LAPB_STATE_4;
560
printk(KERN_DEBUG "lapb: (%p) S3 RX FRMR(%d) %02X "
561
"%02X %02X %02X %02X\n", lapb->dev, frame->pf,
562
skb->data[0], skb->data[1], skb->data[2],
563
skb->data[3], skb->data[4]);
565
lapb_establish_data_link(lapb);
567
printk(KERN_DEBUG "lapb: (%p) S3 -> S1\n", lapb->dev);
569
lapb_requeue_frames(lapb);
570
lapb->state = LAPB_STATE_1;
575
printk(KERN_DEBUG "lapb: (%p) S3 RX ILLEGAL(%d)\n",
576
lapb->dev, frame->pf);
578
lapb->frmr_data = *frame;
579
lapb->frmr_type = LAPB_FRMR_W;
580
lapb_transmit_frmr(lapb);
582
printk(KERN_DEBUG "lapb: (%p) S3 -> S4\n", lapb->dev);
584
lapb_start_t1timer(lapb);
585
lapb_stop_t2timer(lapb);
586
lapb->state = LAPB_STATE_4;
621
600
struct lapb_frame *frame)
623
602
switch (frame->type) {
626
printk(KERN_DEBUG "lapb: (%p) S4 RX SABM(%d)\n",
627
lapb->dev, frame->pf);
629
if (lapb->mode & LAPB_EXTENDED) {
631
printk(KERN_DEBUG "lapb: (%p) S4 TX DM(%d)\n",
632
lapb->dev, frame->pf);
634
lapb_send_control(lapb, LAPB_DM, frame->pf,
638
printk(KERN_DEBUG "lapb: (%p) S4 TX UA(%d)\n",
639
lapb->dev, frame->pf);
605
printk(KERN_DEBUG "lapb: (%p) S4 RX SABM(%d)\n",
606
lapb->dev, frame->pf);
608
if (lapb->mode & LAPB_EXTENDED) {
610
printk(KERN_DEBUG "lapb: (%p) S4 TX DM(%d)\n",
611
lapb->dev, frame->pf);
613
lapb_send_control(lapb, LAPB_DM, frame->pf,
617
printk(KERN_DEBUG "lapb: (%p) S4 TX UA(%d)\n",
618
lapb->dev, frame->pf);
641
620
#if LAPB_DEBUG > 0
642
printk(KERN_DEBUG "lapb: (%p) S4 -> S3\n",
621
printk(KERN_DEBUG "lapb: (%p) S4 -> S3\n", lapb->dev);
645
lapb_send_control(lapb, LAPB_UA, frame->pf,
647
lapb_stop_t1timer(lapb);
648
lapb_stop_t2timer(lapb);
649
lapb->state = LAPB_STATE_3;
650
lapb->condition = 0x00;
655
lapb_connect_indication(lapb, LAPB_OK);
623
lapb_send_control(lapb, LAPB_UA, frame->pf,
625
lapb_stop_t1timer(lapb);
626
lapb_stop_t2timer(lapb);
627
lapb->state = LAPB_STATE_3;
628
lapb->condition = 0x00;
633
lapb_connect_indication(lapb, LAPB_OK);
661
printk(KERN_DEBUG "lapb: (%p) S4 RX SABME(%d)\n",
639
printk(KERN_DEBUG "lapb: (%p) S4 RX SABME(%d)\n",
640
lapb->dev, frame->pf);
642
if (lapb->mode & LAPB_EXTENDED) {
644
printk(KERN_DEBUG "lapb: (%p) S4 TX UA(%d)\n",
662
645
lapb->dev, frame->pf);
664
if (lapb->mode & LAPB_EXTENDED) {
666
printk(KERN_DEBUG "lapb: (%p) S4 TX UA(%d)\n",
667
lapb->dev, frame->pf);
669
647
#if LAPB_DEBUG > 0
670
printk(KERN_DEBUG "lapb: (%p) S4 -> S3\n",
648
printk(KERN_DEBUG "lapb: (%p) S4 -> S3\n", lapb->dev);
673
lapb_send_control(lapb, LAPB_UA, frame->pf,
675
lapb_stop_t1timer(lapb);
676
lapb_stop_t2timer(lapb);
677
lapb->state = LAPB_STATE_3;
678
lapb->condition = 0x00;
683
lapb_connect_indication(lapb, LAPB_OK);
650
lapb_send_control(lapb, LAPB_UA, frame->pf,
652
lapb_stop_t1timer(lapb);
653
lapb_stop_t2timer(lapb);
654
lapb->state = LAPB_STATE_3;
655
lapb->condition = 0x00;
660
lapb_connect_indication(lapb, LAPB_OK);
685
662
#if LAPB_DEBUG > 1
686
printk(KERN_DEBUG "lapb: (%p) S4 TX DM(%d)\n",
687
lapb->dev, frame->pf);
663
printk(KERN_DEBUG "lapb: (%p) S4 TX DM(%d)\n",
664
lapb->dev, frame->pf);
689
lapb_send_control(lapb, LAPB_DM, frame->pf,
666
lapb_send_control(lapb, LAPB_DM, frame->pf,