Lines Matching refs:rose
169 struct rose_sock *rose = rose_sk(s); in rose_kill_by_neigh() local
171 if (rose->neighbour == neigh) { in rose_kill_by_neigh()
173 rose->neighbour->use--; in rose_kill_by_neigh()
174 rose->neighbour = NULL; in rose_kill_by_neigh()
186 struct rose_sock *rose; in rose_kill_by_device() local
195 rose = rose_sk(sk); in rose_kill_by_device()
196 if (rose->device == dev) { in rose_kill_by_device()
209 rose = rose_sk(sk); in rose_kill_by_device()
212 if (rose->device == dev) { in rose_kill_by_device()
214 if (rose->neighbour) in rose_kill_by_device()
215 rose->neighbour->use--; in rose_kill_by_device()
216 netdev_put(rose->device, &rose->dev_tracker); in rose_kill_by_device()
217 rose->device = NULL; in rose_kill_by_device()
276 struct rose_sock *rose = rose_sk(s); in rose_find_listener() local
278 if (!rosecmp(&rose->source_addr, addr) && in rose_find_listener()
279 !ax25cmp(&rose->source_call, call) && in rose_find_listener()
280 !rose->source_ndigis && s->sk_state == TCP_LISTEN) in rose_find_listener()
285 struct rose_sock *rose = rose_sk(s); in rose_find_listener() local
287 if (!rosecmp(&rose->source_addr, addr) && in rose_find_listener()
288 !ax25cmp(&rose->source_call, &null_ax25_address) && in rose_find_listener()
307 struct rose_sock *rose = rose_sk(s); in rose_find_socket() local
309 if (rose->lci == lci && rose->neighbour == neigh) in rose_find_socket()
399 struct rose_sock *rose = rose_sk(sk); in rose_setsockopt() local
413 rose->defer = opt ? 1 : 0; in rose_setsockopt()
419 rose->t1 = opt * HZ; in rose_setsockopt()
425 rose->t2 = opt * HZ; in rose_setsockopt()
431 rose->t3 = opt * HZ; in rose_setsockopt()
437 rose->hb = opt * HZ; in rose_setsockopt()
443 rose->idle = opt * 60 * HZ; in rose_setsockopt()
447 rose->qbitincl = opt ? 1 : 0; in rose_setsockopt()
459 struct rose_sock *rose = rose_sk(sk); in rose_getsockopt() local
474 val = rose->defer; in rose_getsockopt()
478 val = rose->t1 / HZ; in rose_getsockopt()
482 val = rose->t2 / HZ; in rose_getsockopt()
486 val = rose->t3 / HZ; in rose_getsockopt()
490 val = rose->hb / HZ; in rose_getsockopt()
494 val = rose->idle / (60 * HZ); in rose_getsockopt()
498 val = rose->qbitincl; in rose_getsockopt()
524 struct rose_sock *rose = rose_sk(sk); in rose_listen() local
526 rose->dest_ndigis = 0; in rose_listen()
527 memset(&rose->dest_addr, 0, ROSE_ADDR_LEN); in rose_listen()
528 memset(&rose->dest_call, 0, AX25_ADDR_LEN); in rose_listen()
529 memset(rose->dest_digis, 0, AX25_ADDR_LEN * ROSE_MAX_DIGIS); in rose_listen()
550 struct rose_sock *rose; in rose_create() local
562 rose = rose_sk(sk); in rose_create()
566 skb_queue_head_init(&rose->ack_queue); in rose_create()
568 skb_queue_head_init(&rose->frag_queue); in rose_create()
569 rose->fraglen = 0; in rose_create()
575 timer_setup(&rose->timer, NULL, 0); in rose_create()
576 timer_setup(&rose->idletimer, NULL, 0); in rose_create()
578 rose->t1 = msecs_to_jiffies(sysctl_rose_call_request_timeout); in rose_create()
579 rose->t2 = msecs_to_jiffies(sysctl_rose_reset_request_timeout); in rose_create()
580 rose->t3 = msecs_to_jiffies(sysctl_rose_clear_request_timeout); in rose_create()
581 rose->hb = msecs_to_jiffies(sysctl_rose_ack_hold_back_timeout); in rose_create()
582 rose->idle = msecs_to_jiffies(sysctl_rose_no_activity_timeout); in rose_create()
584 rose->state = ROSE_STATE_0; in rose_create()
592 struct rose_sock *rose, *orose; in rose_make_new() local
601 rose = rose_sk(sk); in rose_make_new()
605 skb_queue_head_init(&rose->ack_queue); in rose_make_new()
607 skb_queue_head_init(&rose->frag_queue); in rose_make_new()
608 rose->fraglen = 0; in rose_make_new()
619 timer_setup(&rose->timer, NULL, 0); in rose_make_new()
620 timer_setup(&rose->idletimer, NULL, 0); in rose_make_new()
623 rose->t1 = orose->t1; in rose_make_new()
624 rose->t2 = orose->t2; in rose_make_new()
625 rose->t3 = orose->t3; in rose_make_new()
626 rose->hb = orose->hb; in rose_make_new()
627 rose->idle = orose->idle; in rose_make_new()
628 rose->defer = orose->defer; in rose_make_new()
629 rose->device = orose->device; in rose_make_new()
630 if (rose->device) in rose_make_new()
631 netdev_hold(rose->device, &rose->dev_tracker, GFP_ATOMIC); in rose_make_new()
632 rose->qbitincl = orose->qbitincl; in rose_make_new()
640 struct rose_sock *rose; in rose_release() local
647 rose = rose_sk(sk); in rose_release()
649 switch (rose->state) { in rose_release()
658 rose->neighbour->use--; in rose_release()
673 rose->state = ROSE_STATE_2; in rose_release()
686 netdev_put(rose->device, &rose->dev_tracker); in rose_release()
687 rose->device = NULL; in rose_release()
699 struct rose_sock *rose = rose_sk(sk); in rose_bind() local
733 rose->source_call = user->call; in rose_bind()
741 rose->source_call = *source; in rose_bind()
744 rose->source_addr = addr->srose_addr; in rose_bind()
745 rose->device = dev; in rose_bind()
746 netdev_tracker_alloc(rose->device, &rose->dev_tracker, GFP_KERNEL); in rose_bind()
747 rose->source_ndigis = addr->srose_ndigis; in rose_bind()
752 rose->source_digis[n] = full_addr->srose_digis[n]; in rose_bind()
754 if (rose->source_ndigis == 1) { in rose_bind()
755 rose->source_digis[0] = addr->srose_digi; in rose_bind()
771 struct rose_sock *rose = rose_sk(sk); in rose_connect() local
790 if ((rose->source_ndigis + addr->srose_ndigis) > ROSE_MAX_DIGIS) in rose_connect()
816 rose->neighbour = rose_get_neigh(&addr->srose_addr, &cause, in rose_connect()
818 if (!rose->neighbour) { in rose_connect()
823 rose->lci = rose_new_lci(rose->neighbour); in rose_connect()
824 if (!rose->lci) { in rose_connect()
847 memcpy(&rose->source_addr, dev->dev_addr, ROSE_ADDR_LEN); in rose_connect()
848 rose->source_call = user->call; in rose_connect()
849 rose->device = dev; in rose_connect()
850 netdev_tracker_alloc(rose->device, &rose->dev_tracker, in rose_connect()
856 rose->dest_addr = addr->srose_addr; in rose_connect()
857 rose->dest_call = addr->srose_call; in rose_connect()
858 rose->rand = ((long)rose & 0xFFFF) + rose->lci; in rose_connect()
859 rose->dest_ndigis = addr->srose_ndigis; in rose_connect()
864 rose->dest_digis[n] = full_addr->srose_digis[n]; in rose_connect()
866 if (rose->dest_ndigis == 1) { in rose_connect()
867 rose->dest_digis[0] = addr->srose_digi; in rose_connect()
875 rose->state = ROSE_STATE_1; in rose_connect()
877 rose->neighbour->use++; in rose_connect()
1000 struct rose_sock *rose = rose_sk(sk); in rose_getname() local
1008 srose->srose_addr = rose->dest_addr; in rose_getname()
1009 srose->srose_call = rose->dest_call; in rose_getname()
1010 srose->srose_ndigis = rose->dest_ndigis; in rose_getname()
1011 for (n = 0; n < rose->dest_ndigis; n++) in rose_getname()
1012 srose->srose_digis[n] = rose->dest_digis[n]; in rose_getname()
1015 srose->srose_addr = rose->source_addr; in rose_getname()
1016 srose->srose_call = rose->source_call; in rose_getname()
1017 srose->srose_ndigis = rose->source_ndigis; in rose_getname()
1018 for (n = 0; n < rose->source_ndigis; n++) in rose_getname()
1019 srose->srose_digis[n] = rose->source_digis[n]; in rose_getname()
1112 struct rose_sock *rose = rose_sk(sk); in rose_sendmsg() local
1131 if (rose->neighbour == NULL || rose->device == NULL) in rose_sendmsg()
1139 if (rosecmp(&rose->dest_addr, &srose.srose_addr) != 0 || in rose_sendmsg()
1140 ax25cmp(&rose->dest_call, &srose.srose_call) != 0) in rose_sendmsg()
1142 if (srose.srose_ndigis != rose->dest_ndigis) in rose_sendmsg()
1144 if (srose.srose_ndigis == rose->dest_ndigis) { in rose_sendmsg()
1146 if (ax25cmp(&rose->dest_digis[n], in rose_sendmsg()
1157 srose.srose_addr = rose->dest_addr; in rose_sendmsg()
1158 srose.srose_call = rose->dest_call; in rose_sendmsg()
1159 srose.srose_ndigis = rose->dest_ndigis; in rose_sendmsg()
1160 for (n = 0 ; n < rose->dest_ndigis ; n++) in rose_sendmsg()
1161 srose.srose_digis[n] = rose->dest_digis[n]; in rose_sendmsg()
1193 if (rose->qbitincl) { in rose_sendmsg()
1204 asmptr[0] = ((rose->lci >> 8) & 0x0F) | ROSE_GFI; in rose_sendmsg()
1205 asmptr[1] = (rose->lci >> 0) & 0xFF; in rose_sendmsg()
1277 struct rose_sock *rose = rose_sk(sk); in rose_recvmsg() local
1299 if (rose->qbitincl) { in rose_recvmsg()
1322 srose->srose_addr = rose->dest_addr; in rose_recvmsg()
1323 srose->srose_call = rose->dest_call; in rose_recvmsg()
1324 srose->srose_ndigis = rose->dest_ndigis; in rose_recvmsg()
1325 for (n = 0 ; n < rose->dest_ndigis ; n++) in rose_recvmsg()
1326 full_srose->srose_digis[n] = rose->dest_digis[n]; in rose_recvmsg()
1339 struct rose_sock *rose = rose_sk(sk); in rose_ioctl() local
1384 rose_cause.cause = rose->cause; in rose_ioctl()
1385 rose_cause.diagnostic = rose->diagnostic; in rose_ioctl()
1393 rose->cause = rose_cause.cause; in rose_ioctl()
1394 rose->diagnostic = rose_cause.diagnostic; in rose_ioctl()
1413 if (rose->state == ROSE_STATE_5) { in rose_ioctl()
1416 rose->condition = 0x00; in rose_ioctl()
1417 rose->vs = 0; in rose_ioctl()
1418 rose->va = 0; in rose_ioctl()
1419 rose->vr = 0; in rose_ioctl()
1420 rose->vl = 0; in rose_ioctl()
1421 rose->state = ROSE_STATE_3; in rose_ioctl()
1461 struct rose_sock *rose = rose_sk(s); in rose_info_show() local
1463 const struct net_device *dev = rose->device; in rose_info_show()
1471 rose2asc(rsbuf, &rose->dest_addr), in rose_info_show()
1472 ax2asc(buf, &rose->dest_call)); in rose_info_show()
1474 if (ax25cmp(&rose->source_call, &null_ax25_address) == 0) in rose_info_show()
1477 callsign = ax2asc(buf, &rose->source_call); in rose_info_show()
1481 rose2asc(rsbuf, &rose->source_addr), in rose_info_show()
1484 rose->lci & 0x0FFF, in rose_info_show()
1485 (rose->neighbour) ? rose->neighbour->number : 0, in rose_info_show()
1486 rose->state, in rose_info_show()
1487 rose->vs, in rose_info_show()
1488 rose->vr, in rose_info_show()
1489 rose->va, in rose_info_show()
1490 ax25_display_timer(&rose->timer) / HZ, in rose_info_show()
1491 rose->t1 / HZ, in rose_info_show()
1492 rose->t2 / HZ, in rose_info_show()
1493 rose->t3 / HZ, in rose_info_show()
1494 rose->hb / HZ, in rose_info_show()
1495 ax25_display_timer(&rose->idletimer) / (60 * HZ), in rose_info_show()
1496 rose->idle / (60 * HZ), in rose_info_show()