Changeset 6896409c in mainline for uspace/srv/net/tl/tcp/conn.c


Ignore:
Timestamp:
2011-11-21T22:46:37Z (12 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1812a0d
Parents:
eea65f4
Message:

Fix off-by-one bug in BIT_V.
Fix FIN being sent too early.
Fix FIN not being sent.
Fix seg→len from decoded PDU.
Add segment dumps.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tl/tcp/conn.c

    reea65f4 r6896409c  
    190190        case st_syn_received:
    191191        case st_established:
    192                 log_msg(LVL_DEBUG, "FIN sent -> Fin-Wait-1");
     192                log_msg(LVL_DEBUG, "%s: FIN sent -> Fin-Wait-1", conn->name);
    193193                tcp_conn_state_set(conn, st_fin_wait_1);
    194194                break;
    195195        case st_close_wait:
    196                 log_msg(LVL_DEBUG, "FIN sent -> Last-Ack");
     196                log_msg(LVL_DEBUG, "%s: FIN sent -> Last-Ack", conn->name);
    197197                tcp_conn_state_set(conn, st_last_ack);
    198198                break;
    199199        default:
    200                 log_msg(LVL_ERROR, "Connection state %d", conn->cstate);
     200                log_msg(LVL_ERROR, "%s: Connection state %d", conn->name,
     201                    conn->cstate);
    201202                assert(false);
    202203        }
     
    367368
    368369        if ((seg->ctrl & CTL_RST) != 0) {
    369                 log_msg(LVL_DEBUG, "Connection reset. -> Closed");
     370                log_msg(LVL_DEBUG, "%s: Connection reset. -> Closed",
     371                    conn->name);
    370372                /* XXX Signal user error */
    371373                tcp_conn_state_set(conn, st_closed);
     
    408410
    409411        if (seq_no_syn_acked(conn)) {
    410                 log_msg(LVL_DEBUG, " syn acked -> Established");
     412                log_msg(LVL_DEBUG, "%s: syn acked -> Established", conn->name);
    411413                tcp_conn_state_set(conn, st_established);
    412414                tcp_tqueue_ctrl_seg(conn, CTL_ACK /* XXX */);
    413415        } else {
    414                 log_msg(LVL_DEBUG, " syn not acked -> Syn-Received");
     416                log_msg(LVL_DEBUG, "%s: syn not acked -> Syn-Received",
     417                    conn->name);
    415418                tcp_conn_state_set(conn, st_syn_received);
    416419                tcp_tqueue_ctrl_seg(conn, CTL_SYN | CTL_ACK /* XXX */);
     
    527530        }
    528531
    529         log_msg(LVL_DEBUG, "SYN ACKed -> Established");
     532        log_msg(LVL_DEBUG, "%s: SYN ACKed -> Established", conn->name);
    530533
    531534        tcp_conn_state_set(conn, st_established);
     
    601604
    602605        if (conn->fin_is_acked) {
    603                 log_msg(LVL_DEBUG, " FIN acked -> Fin-Wait-2");
     606                log_msg(LVL_DEBUG, "%s: FIN acked -> Fin-Wait-2", conn->name);
    604607                tcp_conn_state_set(conn, st_fin_wait_2);
    605608        }
     
    666669
    667670        if (conn->fin_is_acked) {
    668                 log_msg(LVL_DEBUG, " FIN acked -> Closed");
     671                log_msg(LVL_DEBUG, "%s: FIN acked -> Closed", conn->name);
    669672                tcp_conn_remove(conn);
    670673                tcp_conn_state_set(conn, st_closed);
     
    815818                tcp_conn_trim_seg_to_wnd(conn, seg);
    816819        } else {
     820                log_msg(LVL_DEBUG, "%s: Nothing left in segment, dropping "
     821                    "(xfer_size=%zu, SEG.LEN=%zu, seg->ctrl=%u)",
     822                    conn->name, xfer_size, seg->len, (unsigned)seg->ctrl);
    817823                /* Nothing left in segment */
    818824                tcp_segment_delete(seg);
     
    855861                case st_syn_received:
    856862                case st_established:
    857                         log_msg(LVL_DEBUG, "FIN received -> Close-Wait");
     863                        log_msg(LVL_DEBUG, "%s: FIN received -> Close-Wait",
     864                            conn->name);
    858865                        tcp_conn_state_set(conn, st_close_wait);
    859866                        break;
    860867                case st_fin_wait_1:
    861                         log_msg(LVL_DEBUG, "FIN received -> Closing");
     868                        log_msg(LVL_DEBUG, "%s: FIN received -> Closing",
     869                            conn->name);
    862870                        tcp_conn_state_set(conn, st_closing);
    863871                        break;
    864872                case st_fin_wait_2:
    865                         log_msg(LVL_DEBUG, "FIN received -> Time-Wait");
     873                        log_msg(LVL_DEBUG, "%s: FIN received -> Time-Wait",
     874                            conn->name);
    866875                        tcp_conn_state_set(conn, st_time_wait);
    867876                        /* Start the Time-Wait timer */
     
    904913{
    905914        log_msg(LVL_DEBUG, "tcp_conn_seg_process(%p, %p)", conn, seg);
     915        tcp_segment_dump(seg);
    906916
    907917        /* Check whether segment is acceptable */
     
    989999
    9901000        log_msg(LVL_DEBUG, "tw_timeout_func(%p)", conn);
    991         log_msg(LVL_DEBUG, " TW Timeout -> Closed");
     1001        log_msg(LVL_DEBUG, "%s: TW Timeout -> Closed", conn->name);
    9921002
    9931003        tcp_conn_remove(conn);
Note: See TracChangeset for help on using the changeset viewer.