Lines Matching refs:rose

40 #include <net/rose.h>
169 struct rose_sock *rose = rose_sk(s);
171 if (rose->neighbour == neigh) {
173 rose->neighbour->use--;
174 rose->neighbour = NULL;
186 struct rose_sock *rose;
195 rose = rose_sk(sk);
196 if (rose->device == dev) {
209 rose = rose_sk(sk);
212 if (rose->device == dev) {
214 if (rose->neighbour)
215 rose->neighbour->use--;
216 netdev_put(rose->device, &rose->dev_tracker);
217 rose->device = NULL;
276 struct rose_sock *rose = rose_sk(s);
278 if (!rosecmp(&rose->source_addr, addr) &&
279 !ax25cmp(&rose->source_call, call) &&
280 !rose->source_ndigis && s->sk_state == TCP_LISTEN)
285 struct rose_sock *rose = rose_sk(s);
287 if (!rosecmp(&rose->source_addr, addr) &&
288 !ax25cmp(&rose->source_call, &null_ax25_address) &&
307 struct rose_sock *rose = rose_sk(s);
309 if (rose->lci == lci && rose->neighbour == neigh)
399 struct rose_sock *rose = rose_sk(sk);
413 rose->defer = opt ? 1 : 0;
419 rose->t1 = opt * HZ;
425 rose->t2 = opt * HZ;
431 rose->t3 = opt * HZ;
437 rose->hb = opt * HZ;
443 rose->idle = opt * 60 * HZ;
447 rose->qbitincl = opt ? 1 : 0;
459 struct rose_sock *rose = rose_sk(sk);
474 val = rose->defer;
478 val = rose->t1 / HZ;
482 val = rose->t2 / HZ;
486 val = rose->t3 / HZ;
490 val = rose->hb / HZ;
494 val = rose->idle / (60 * HZ);
498 val = rose->qbitincl;
524 struct rose_sock *rose = rose_sk(sk);
526 rose->dest_ndigis = 0;
527 memset(&rose->dest_addr, 0, ROSE_ADDR_LEN);
528 memset(&rose->dest_call, 0, AX25_ADDR_LEN);
529 memset(rose->dest_digis, 0, AX25_ADDR_LEN * ROSE_MAX_DIGIS);
550 struct rose_sock *rose;
562 rose = rose_sk(sk);
566 skb_queue_head_init(&rose->ack_queue);
568 skb_queue_head_init(&rose->frag_queue);
569 rose->fraglen = 0;
575 timer_setup(&rose->timer, NULL, 0);
576 timer_setup(&rose->idletimer, NULL, 0);
578 rose->t1 = msecs_to_jiffies(sysctl_rose_call_request_timeout);
579 rose->t2 = msecs_to_jiffies(sysctl_rose_reset_request_timeout);
580 rose->t3 = msecs_to_jiffies(sysctl_rose_clear_request_timeout);
581 rose->hb = msecs_to_jiffies(sysctl_rose_ack_hold_back_timeout);
582 rose->idle = msecs_to_jiffies(sysctl_rose_no_activity_timeout);
584 rose->state = ROSE_STATE_0;
592 struct rose_sock *rose, *orose;
601 rose = rose_sk(sk);
605 skb_queue_head_init(&rose->ack_queue);
607 skb_queue_head_init(&rose->frag_queue);
608 rose->fraglen = 0;
619 timer_setup(&rose->timer, NULL, 0);
620 timer_setup(&rose->idletimer, NULL, 0);
623 rose->t1 = orose->t1;
624 rose->t2 = orose->t2;
625 rose->t3 = orose->t3;
626 rose->hb = orose->hb;
627 rose->idle = orose->idle;
628 rose->defer = orose->defer;
629 rose->device = orose->device;
630 if (rose->device)
631 netdev_hold(rose->device, &rose->dev_tracker, GFP_ATOMIC);
632 rose->qbitincl = orose->qbitincl;
640 struct rose_sock *rose;
647 rose = rose_sk(sk);
649 switch (rose->state) {
658 rose->neighbour->use--;
673 rose->state = ROSE_STATE_2;
686 netdev_put(rose->device, &rose->dev_tracker);
687 rose->device = NULL;
699 struct rose_sock *rose = rose_sk(sk);
728 rose->source_call = user->call;
735 rose->source_call = *source;
738 rose->source_addr = addr->srose_addr;
739 rose->device = dev;
740 netdev_tracker_alloc(rose->device, &rose->dev_tracker, GFP_KERNEL);
741 rose->source_ndigis = addr->srose_ndigis;
746 rose->source_digis[n] = full_addr->srose_digis[n];
748 if (rose->source_ndigis == 1) {
749 rose->source_digis[0] = addr->srose_digi;
763 struct rose_sock *rose = rose_sk(sk);
782 if ((rose->source_ndigis + addr->srose_ndigis) > ROSE_MAX_DIGIS)
808 rose->neighbour = rose_get_neigh(&addr->srose_addr, &cause,
810 if (!rose->neighbour) {
815 rose->lci = rose_new_lci(rose->neighbour);
816 if (!rose->lci) {
839 memcpy(&rose->source_addr, dev->dev_addr, ROSE_ADDR_LEN);
840 rose->source_call = user->call;
841 rose->device = dev;
842 netdev_tracker_alloc(rose->device, &rose->dev_tracker,
848 rose->dest_addr = addr->srose_addr;
849 rose->dest_call = addr->srose_call;
850 rose->rand = ((long)rose & 0xFFFF) + rose->lci;
851 rose->dest_ndigis = addr->srose_ndigis;
856 rose->dest_digis[n] = full_addr->srose_digis[n];
858 if (rose->dest_ndigis == 1) {
859 rose->dest_digis[0] = addr->srose_digi;
867 rose->state = ROSE_STATE_1;
869 rose->neighbour->use++;
992 struct rose_sock *rose = rose_sk(sk);
1000 srose->srose_addr = rose->dest_addr;
1001 srose->srose_call = rose->dest_call;
1002 srose->srose_ndigis = rose->dest_ndigis;
1003 for (n = 0; n < rose->dest_ndigis; n++)
1004 srose->srose_digis[n] = rose->dest_digis[n];
1007 srose->srose_addr = rose->source_addr;
1008 srose->srose_call = rose->source_call;
1009 srose->srose_ndigis = rose->source_ndigis;
1010 for (n = 0; n < rose->source_ndigis; n++)
1011 srose->srose_digis[n] = rose->source_digis[n];
1028 * skb->data points to the rose frame start
1104 struct rose_sock *rose = rose_sk(sk);
1123 if (rose->neighbour == NULL || rose->device == NULL)
1131 if (rosecmp(&rose->dest_addr, &srose.srose_addr) != 0 ||
1132 ax25cmp(&rose->dest_call, &srose.srose_call) != 0)
1134 if (srose.srose_ndigis != rose->dest_ndigis)
1136 if (srose.srose_ndigis == rose->dest_ndigis) {
1138 if (ax25cmp(&rose->dest_digis[n],
1149 srose.srose_addr = rose->dest_addr;
1150 srose.srose_call = rose->dest_call;
1151 srose.srose_ndigis = rose->dest_ndigis;
1152 for (n = 0 ; n < rose->dest_ndigis ; n++)
1153 srose.srose_digis[n] = rose->dest_digis[n];
1185 if (rose->qbitincl) {
1196 asmptr[0] = ((rose->lci >> 8) & 0x0F) | ROSE_GFI;
1197 asmptr[1] = (rose->lci >> 0) & 0xFF;
1269 struct rose_sock *rose = rose_sk(sk);
1291 if (rose->qbitincl) {
1314 srose->srose_addr = rose->dest_addr;
1315 srose->srose_call = rose->dest_call;
1316 srose->srose_ndigis = rose->dest_ndigis;
1317 for (n = 0 ; n < rose->dest_ndigis ; n++)
1318 full_srose->srose_digis[n] = rose->dest_digis[n];
1331 struct rose_sock *rose = rose_sk(sk);
1376 rose_cause.cause = rose->cause;
1377 rose_cause.diagnostic = rose->diagnostic;
1385 rose->cause = rose_cause.cause;
1386 rose->diagnostic = rose_cause.diagnostic;
1405 if (rose->state == ROSE_STATE_5) {
1408 rose->condition = 0x00;
1409 rose->vs = 0;
1410 rose->va = 0;
1411 rose->vr = 0;
1412 rose->vl = 0;
1413 rose->state = ROSE_STATE_3;
1453 struct rose_sock *rose = rose_sk(s);
1455 const struct net_device *dev = rose->device;
1463 rose2asc(rsbuf, &rose->dest_addr),
1464 ax2asc(buf, &rose->dest_call));
1466 if (ax25cmp(&rose->source_call, &null_ax25_address) == 0)
1469 callsign = ax2asc(buf, &rose->source_call);
1473 rose2asc(rsbuf, &rose->source_addr),
1476 rose->lci & 0x0FFF,
1477 (rose->neighbour) ? rose->neighbour->number : 0,
1478 rose->state,
1479 rose->vs,
1480 rose->vr,
1481 rose->va,
1482 ax25_display_timer(&rose->timer) / HZ,
1483 rose->t1 / HZ,
1484 rose->t2 / HZ,
1485 rose->t3 / HZ,
1486 rose->hb / HZ,
1487 ax25_display_timer(&rose->idletimer) / (60 * HZ),
1488 rose->idle / (60 * HZ),
1576 sprintf(name, "rose%d", i);
1606 proc_create_seq("rose", 0444, init_net.proc_net, &rose_info_seqops);
1639 remove_proc_entry("rose", init_net.proc_net);