Lines Matching refs:rose

25 #include <net/rose.h>
27 static int rose_create_facilities(unsigned char *buffer, struct rose_sock *rose);
46 struct rose_sock *rose = rose_sk(sk);
51 if (rose->va != nr) {
52 while (skb_peek(&rose->ack_queue) != NULL && rose->va != nr) {
53 skb = skb_dequeue(&rose->ack_queue);
55 rose->va = (rose->va + 1) % ROSE_MODULUS;
84 struct rose_sock *rose = rose_sk(sk);
85 unsigned short vc = rose->va;
87 while (vc != rose->vs) {
92 return nr == rose->vs;
101 struct rose_sock *rose = rose_sk(sk);
135 lci1 = (rose->lci >> 8) & 0x0F;
136 lci2 = (rose->lci >> 0) & 0xFF;
144 memcpy(dptr, &rose->dest_addr, ROSE_ADDR_LEN);
146 memcpy(dptr, &rose->source_addr, ROSE_ADDR_LEN);
148 faclen = rose_create_facilities(dptr, rose);
165 *dptr++ = rose->cause;
166 *dptr++ = rose->diagnostic;
182 *dptr++ |= (rose->vr << 5) & 0xE0;
198 rose_transmit_link(skb, rose->neighbour);
435 static int rose_create_facilities(unsigned char *buffer, struct rose_sock *rose)
443 if (rose->rand != 0 || rose->source_ndigis == 1 || rose->dest_ndigis == 1) {
447 if (rose->rand != 0) {
449 *p++ = (rose->rand >> 8) & 0xFF;
450 *p++ = (rose->rand >> 0) & 0xFF;
454 if ((rose->source_ndigis > 0) || (rose->dest_ndigis > 0)) {
457 *p++ = AX25_ADDR_LEN * (rose->source_ndigis + rose->dest_ndigis);
458 for (nb = 0 ; nb < rose->source_ndigis ; nb++) {
461 memcpy(p, &rose->source_digis[nb], AX25_ADDR_LEN);
465 for (nb = 0 ; nb < rose->dest_ndigis ; nb++) {
468 memcpy(p, &rose->dest_digis[nb], AX25_ADDR_LEN);
475 if (rose->source_ndigis > 0) {
478 memcpy(p, &rose->source_digis[0], AX25_ADDR_LEN);
483 if (rose->dest_ndigis > 0) {
486 memcpy(p, &rose->dest_digis[0], AX25_ADDR_LEN);
496 callsign = ax2asc(buf, &rose->dest_call);
503 memcpy(p, &rose->dest_addr, ROSE_ADDR_LEN);
511 callsign = ax2asc(buf, &rose->source_call);
518 memcpy(p, &rose->source_addr, ROSE_ADDR_LEN);
532 struct rose_sock *rose = rose_sk(sk);
539 rose->lci = 0;
540 rose->state = ROSE_STATE_0;
543 rose->cause = cause;
546 rose->diagnostic = diagnostic;