Lines Matching full:scp
145 struct dn_scp scp; member
166 struct dn_scp *scp = DN_SK(sk); in dn_find_list() local
168 if (scp->addr.sdn_flags & SDF_WILD) in dn_find_list()
171 return &dn_sk_hash[le16_to_cpu(scp->addrloc) & DN_SK_HASH_MASK]; in dn_find_list()
185 struct dn_scp *scp = DN_SK(sk); in check_port() local
186 if (scp->addrloc == port) in check_port()
194 struct dn_scp *scp = DN_SK(sk); in port_alloc() local
203 scp->addrloc = cpu_to_le16(port); in port_alloc()
215 struct dn_scp *scp = DN_SK(sk); in dn_hash_sock() local
223 if (!scp->addrloc && !port_alloc(sk)) in dn_hash_sock()
275 struct dn_scp *scp = DN_SK(sk); in dn_rehash_sock() local
277 if (scp->addr.sdn_flags & SDF_WILD) in dn_rehash_sock()
382 struct dn_scp *scp = DN_SK(sk); in dn_sklist_find_listener() local
385 if (scp->addr.sdn_objnum) { in dn_sklist_find_listener()
386 if (scp->addr.sdn_objnum != addr->sdn_objnum) in dn_sklist_find_listener()
391 if (scp->addr.sdn_objnamel != addr->sdn_objnamel) in dn_sklist_find_listener()
393 if (memcmp(scp->addr.sdn_objname, addr->sdn_objname, le16_to_cpu(addr->sdn_objnamel)) != 0) in dn_sklist_find_listener()
417 struct dn_scp *scp; in dn_find_by_skb() local
421 scp = DN_SK(sk); in dn_find_by_skb()
422 if (cb->src != dn_saddr2dn(&scp->peer)) in dn_find_by_skb()
424 if (cb->dst_port != scp->addrloc) in dn_find_by_skb()
426 if (scp->addrrem && (cb->src_port != scp->addrrem)) in dn_find_by_skb()
441 struct dn_scp *scp = DN_SK(sk); in dn_destruct() local
443 skb_queue_purge(&scp->data_xmit_queue); in dn_destruct()
444 skb_queue_purge(&scp->other_xmit_queue); in dn_destruct()
445 skb_queue_purge(&scp->other_receive_queue); in dn_destruct()
474 struct dn_scp *scp; in dn_alloc_sock() local
494 scp = DN_SK(sk); in dn_alloc_sock()
495 scp->state = DN_O; /* Open */ in dn_alloc_sock()
496 scp->numdat = 1; /* Next data seg to tx */ in dn_alloc_sock()
497 scp->numoth = 1; /* Next oth data to tx */ in dn_alloc_sock()
498 scp->ackxmt_dat = 0; /* Last data seg ack'ed */ in dn_alloc_sock()
499 scp->ackxmt_oth = 0; /* Last oth data ack'ed */ in dn_alloc_sock()
500 scp->ackrcv_dat = 0; /* Highest data ack recv*/ in dn_alloc_sock()
501 scp->ackrcv_oth = 0; /* Last oth data ack rec*/ in dn_alloc_sock()
502 scp->flowrem_sw = DN_SEND; in dn_alloc_sock()
503 scp->flowloc_sw = DN_SEND; in dn_alloc_sock()
504 scp->flowrem_dat = 0; in dn_alloc_sock()
505 scp->flowrem_oth = 1; in dn_alloc_sock()
506 scp->flowloc_dat = 0; in dn_alloc_sock()
507 scp->flowloc_oth = 1; in dn_alloc_sock()
508 scp->services_rem = 0; in dn_alloc_sock()
509 scp->services_loc = 1 | NSP_FC_NONE; in dn_alloc_sock()
510 scp->info_rem = 0; in dn_alloc_sock()
511 scp->info_loc = 0x03; /* NSP version 4.1 */ in dn_alloc_sock()
512 scp->segsize_rem = 230 - DN_MAX_NSP_DATA_HEADER; /* Default: Updated by remote segsize */ in dn_alloc_sock()
513 scp->nonagle = 0; in dn_alloc_sock()
514 scp->multi_ireq = 1; in dn_alloc_sock()
515 scp->accept_mode = ACC_IMMED; in dn_alloc_sock()
516 scp->addr.sdn_family = AF_DECnet; in dn_alloc_sock()
517 scp->peer.sdn_family = AF_DECnet; in dn_alloc_sock()
518 scp->accessdata.acc_accl = 5; in dn_alloc_sock()
519 memcpy(scp->accessdata.acc_acc, "LINUX", 5); in dn_alloc_sock()
521 scp->max_window = NSP_MAX_WINDOW; in dn_alloc_sock()
522 scp->snd_window = NSP_MIN_WINDOW; in dn_alloc_sock()
523 scp->nsp_srtt = NSP_INITIAL_SRTT; in dn_alloc_sock()
524 scp->nsp_rttvar = NSP_INITIAL_RTTVAR; in dn_alloc_sock()
525 scp->nsp_rxtshift = 0; in dn_alloc_sock()
527 skb_queue_head_init(&scp->data_xmit_queue); in dn_alloc_sock()
528 skb_queue_head_init(&scp->other_xmit_queue); in dn_alloc_sock()
529 skb_queue_head_init(&scp->other_receive_queue); in dn_alloc_sock()
531 scp->persist = 0; in dn_alloc_sock()
532 scp->persist_fxn = NULL; in dn_alloc_sock()
533 scp->keepalive = 10 * HZ; in dn_alloc_sock()
534 scp->keepalive_fxn = dn_keepalive; in dn_alloc_sock()
547 struct dn_scp *scp = DN_SK(sk); in dn_keepalive() local
554 if (skb_queue_empty(&scp->other_xmit_queue)) in dn_keepalive()
568 struct dn_scp *scp = DN_SK(sk); in dn_destroy_timer() local
570 scp->persist = dn_nsp_persist(sk); in dn_destroy_timer()
572 switch (scp->state) { in dn_destroy_timer()
575 if (scp->nsp_rxtshift >= decnet_di_count) in dn_destroy_timer()
576 scp->state = DN_CN; in dn_destroy_timer()
581 if (scp->nsp_rxtshift >= decnet_dr_count) in dn_destroy_timer()
582 scp->state = DN_DRC; in dn_destroy_timer()
586 if (scp->nsp_rxtshift < decnet_dn_count) { in dn_destroy_timer()
594 scp->persist = (HZ * decnet_time_wait); in dn_destroy_timer()
599 if (time_after_eq(jiffies, scp->stamp + HZ * decnet_time_wait)) { in dn_destroy_timer()
610 struct dn_scp *scp = DN_SK(sk); in dn_destroy_sock() local
612 scp->nsp_rxtshift = 0; /* reset back off */ in dn_destroy_sock()
621 switch (scp->state) { in dn_destroy_sock()
625 scp->persist_fxn = dn_destroy_timer; in dn_destroy_sock()
626 scp->persist = dn_nsp_persist(sk); in dn_destroy_sock()
629 scp->state = DN_DR; in dn_destroy_sock()
632 scp->state = DN_DI; in dn_destroy_sock()
647 scp->persist_fxn = dn_destroy_timer; in dn_destroy_sock()
648 scp->persist = dn_nsp_persist(sk); in dn_destroy_sock()
728 struct dn_scp *scp = DN_SK(sk); in dn_bind() local
773 memcpy(&scp->addr, saddr, addr_len); in dn_bind()
789 struct dn_scp *scp = DN_SK(sk); in dn_auto_bind() local
794 scp->addr.sdn_flags = 0; in dn_auto_bind()
795 scp->addr.sdn_objnum = 0; in dn_auto_bind()
801 if ((scp->accessdata.acc_accl != 0) && in dn_auto_bind()
802 (scp->accessdata.acc_accl <= 12)) { in dn_auto_bind()
804 scp->addr.sdn_objnamel = cpu_to_le16(scp->accessdata.acc_accl); in dn_auto_bind()
805 memcpy(scp->addr.sdn_objname, scp->accessdata.acc_acc, le16_to_cpu(scp->addr.sdn_objnamel)); in dn_auto_bind()
807 scp->accessdata.acc_accl = 0; in dn_auto_bind()
808 memset(scp->accessdata.acc_acc, 0, 40); in dn_auto_bind()
812 scp->addr.sdn_add.a_len = cpu_to_le16(2); in dn_auto_bind()
813 rv = dn_dev_bind_default((__le16 *)scp->addr.sdn_add.a_addr); in dn_auto_bind()
825 struct dn_scp *scp = DN_SK(sk); in dn_confirm_accept() local
829 if (scp->state != DN_CR) in dn_confirm_accept()
832 scp->state = DN_CC; in dn_confirm_accept()
833 scp->segsize_loc = dst_metric_advmss(__sk_dst_get(sk)); in dn_confirm_accept()
839 if (scp->state == DN_CC) in dn_confirm_accept()
843 if (scp->state == DN_RUN) in dn_confirm_accept()
859 } else if (scp->state != DN_CC) { in dn_confirm_accept()
867 struct dn_scp *scp = DN_SK(sk); in dn_wait_run() local
871 if (scp->state == DN_RUN) in dn_wait_run()
880 if (scp->state == DN_CI || scp->state == DN_CC) in dn_wait_run()
884 if (scp->state == DN_RUN) in dn_wait_run()
901 } else if (scp->state != DN_CI && scp->state != DN_CC) { in dn_wait_run()
910 struct dn_scp *scp = DN_SK(sk); in __dn_connect() local
920 if (scp->state == DN_RUN) { in __dn_connect()
925 if (scp->state != DN_CI && scp->state != DN_CC) { in __dn_connect()
933 if (scp->state != DN_O) in __dn_connect()
949 memcpy(&scp->peer, addr, sizeof(struct sockaddr_dn)); in __dn_connect()
954 fld.daddr = dn_saddr2dn(&scp->peer); in __dn_connect()
955 fld.saddr = dn_saddr2dn(&scp->addr); in __dn_connect()
956 dn_sk_ports_copy(&fld, scp); in __dn_connect()
963 scp->state = DN_CI; in __dn_connect()
964 scp->segsize_loc = dst_metric_advmss(dst); in __dn_connect()
991 struct dn_scp *scp = DN_SK(sk); in dn_check_state() local
993 switch (scp->state) { in dn_check_state()
1187 struct dn_scp *scp = DN_SK(sk); in dn_getname() local
1194 scp->accept_mode == ACC_IMMED) { in dn_getname()
1199 memcpy(sa, &scp->peer, sizeof(struct sockaddr_dn)); in dn_getname()
1201 memcpy(sa, &scp->addr, sizeof(struct sockaddr_dn)); in dn_getname()
1213 struct dn_scp *scp = DN_SK(sk); in dn_poll() local
1216 if (!skb_queue_empty_lockless(&scp->other_receive_queue)) in dn_poll()
1225 struct dn_scp *scp = DN_SK(sk); in dn_ioctl() local
1239 val = !skb_queue_empty(&scp->other_receive_queue); in dn_ioctl()
1240 if (scp->state != DN_RUN) in dn_ioctl()
1254 skb = skb_peek(&scp->other_receive_queue); in dn_ioctl()
1302 struct dn_scp *scp = DN_SK(sk); in dn_shutdown() local
1315 if (scp->state == DN_O) in dn_shutdown()
1352 struct dn_scp *scp = DN_SK(sk); in __dn_setsockopt() local
1378 if ((scp->state != DN_O) && (scp->state != DN_CR)) in __dn_setsockopt()
1387 memcpy(&scp->conndata_out, &u.opt, optlen); in __dn_setsockopt()
1392 scp->accept_mode == ACC_IMMED) in __dn_setsockopt()
1401 memcpy(&scp->discdata_out, &u.opt, optlen); in __dn_setsockopt()
1407 if (scp->state != DN_O) in __dn_setsockopt()
1418 memcpy(&scp->accessdata, &u.acc, optlen); in __dn_setsockopt()
1424 if (scp->state != DN_O) in __dn_setsockopt()
1433 scp->accept_mode = (unsigned char)u.mode; in __dn_setsockopt()
1437 if (scp->state != DN_CR) in __dn_setsockopt()
1444 if (scp->state != DN_CR) in __dn_setsockopt()
1447 scp->state = DN_DR; in __dn_setsockopt()
1459 scp->max_window = u.win; in __dn_setsockopt()
1460 if (scp->snd_window > u.win) in __dn_setsockopt()
1461 scp->snd_window = u.win; in __dn_setsockopt()
1467 if (scp->nonagle == TCP_NAGLE_CORK) in __dn_setsockopt()
1469 scp->nonagle = (u.val == 0) ? 0 : TCP_NAGLE_OFF; in __dn_setsockopt()
1470 /* if (scp->nonagle == 1) { Push pending frames } */ in __dn_setsockopt()
1476 if (scp->nonagle == TCP_NAGLE_OFF) in __dn_setsockopt()
1478 scp->nonagle = (u.val == 0) ? 0 : TCP_NAGLE_CORK; in __dn_setsockopt()
1479 /* if (scp->nonagle == 0) { Push pending frames } */ in __dn_setsockopt()
1489 scp->services_loc = u.services; in __dn_setsockopt()
1497 scp->info_loc = u.info; in __dn_setsockopt()
1539 struct dn_scp *scp = DN_SK(sk); in __dn_getsockopt() local
1552 r_data = &scp->conndata_in; in __dn_getsockopt()
1558 r_data = &scp->discdata_in; in __dn_getsockopt()
1564 r_data = &scp->accessdata; in __dn_getsockopt()
1570 r_data = &scp->accept_mode; in __dn_getsockopt()
1593 link.idn_segsize = scp->segsize_rem; in __dn_getsockopt()
1600 r_data = &scp->max_window; in __dn_getsockopt()
1606 val = (scp->nonagle == TCP_NAGLE_OFF); in __dn_getsockopt()
1613 val = (scp->nonagle == TCP_NAGLE_CORK); in __dn_getsockopt()
1620 r_data = &scp->services_rem; in __dn_getsockopt()
1626 r_data = &scp->info_rem; in __dn_getsockopt()
1682 struct dn_scp *scp = DN_SK(sk); in dn_recvmsg() local
1714 queue = &scp->other_receive_queue; in dn_recvmsg()
1729 if (!skb_queue_empty(&scp->other_receive_queue)) { in dn_recvmsg()
1732 if (!scp->other_report) { in dn_recvmsg()
1733 scp->other_report = 1; in dn_recvmsg()
1739 if (scp->state != DN_RUN) in dn_recvmsg()
1787 if ((scp->flowloc_sw == DN_DONTSEND) && !dn_congested(sk)) { in dn_recvmsg()
1788 scp->flowloc_sw = DN_SEND; in dn_recvmsg()
1819 memcpy(msg->msg_name, &scp->peer, sizeof(struct sockaddr_dn)); in dn_recvmsg()
1829 static inline int dn_queue_too_long(struct dn_scp *scp, struct sk_buff_head *queue, int flags) in dn_queue_too_long() argument
1831 unsigned char fctype = scp->services_rem & NSP_FC_MASK; in dn_queue_too_long()
1832 if (skb_queue_len(queue) >= scp->snd_window) in dn_queue_too_long()
1836 if (scp->flowrem_oth == 0) in dn_queue_too_long()
1839 if (scp->flowrem_dat == 0) in dn_queue_too_long()
1879 struct dn_scp *scp = DN_SK(sk); in dn_current_mss() local
1880 int mss_now = min_t(int, scp->segsize_loc, scp->segsize_rem); in dn_current_mss()
1917 struct dn_scp *scp = DN_SK(sk); in dn_sendmsg() local
1919 struct sk_buff_head *queue = &scp->data_xmit_queue; in dn_sendmsg()
1967 mss = scp->segsize_rem; in dn_sendmsg()
1968 fctype = scp->services_rem & NSP_FC_MASK; in dn_sendmsg()
1973 queue = &scp->other_xmit_queue; in dn_sendmsg()
1980 scp->persist_fxn = dn_nsp_xmit_timeout; in dn_sendmsg()
2004 if (dn_queue_too_long(scp, queue, flags)) { in dn_sendmsg()
2015 !dn_queue_too_long(scp, queue, flags), &wait); in dn_sendmsg()
2048 scp->flowrem_oth--; in dn_sendmsg()
2051 if (scp->seg_total == 0) in dn_sendmsg()
2054 scp->seg_total += len; in dn_sendmsg()
2058 scp->seg_total = 0; in dn_sendmsg()
2060 scp->flowrem_dat--; in dn_sendmsg()
2063 scp->flowrem_dat--; in dn_sendmsg()
2070 scp->persist = dn_nsp_persist(sk); in dn_sendmsg()
2269 struct dn_scp *scp = DN_SK(sk); in dn_socket_format_entry() local
2275 dn_printable_object(&scp->addr, local_object); in dn_socket_format_entry()
2276 dn_printable_object(&scp->peer, remote_object); in dn_socket_format_entry()
2281 dn_addr2asc(le16_to_cpu(dn_saddr2dn(&scp->addr)), buf1), in dn_socket_format_entry()
2282 scp->addrloc, in dn_socket_format_entry()
2283 scp->numdat, in dn_socket_format_entry()
2284 scp->numoth, in dn_socket_format_entry()
2285 scp->ackxmt_dat, in dn_socket_format_entry()
2286 scp->ackxmt_oth, in dn_socket_format_entry()
2287 scp->flowloc_sw, in dn_socket_format_entry()
2289 dn_addr2asc(le16_to_cpu(dn_saddr2dn(&scp->peer)), buf2), in dn_socket_format_entry()
2290 scp->addrrem, in dn_socket_format_entry()
2291 scp->numdat_rcv, in dn_socket_format_entry()
2292 scp->numoth_rcv, in dn_socket_format_entry()
2293 scp->ackrcv_dat, in dn_socket_format_entry()
2294 scp->ackrcv_oth, in dn_socket_format_entry()
2295 scp->flowrem_sw, in dn_socket_format_entry()
2297 dn_state2asc(scp->state), in dn_socket_format_entry()
2298 ((scp->accept_mode == ACC_IMMED) ? "IMMED" : "DEFER")); in dn_socket_format_entry()