Lines Matching refs:v1

112 	BUG_ON(con->v1.out_skip);
114 con->v1.out_kvec_left = 0;
115 con->v1.out_kvec_bytes = 0;
116 con->v1.out_kvec_cur = &con->v1.out_kvec[0];
122 int index = con->v1.out_kvec_left;
124 BUG_ON(con->v1.out_skip);
125 BUG_ON(index >= ARRAY_SIZE(con->v1.out_kvec));
127 con->v1.out_kvec[index].iov_len = size;
128 con->v1.out_kvec[index].iov_base = data;
129 con->v1.out_kvec_left++;
130 con->v1.out_kvec_bytes += size;
142 if (con->v1.out_kvec_bytes > 0) {
143 skip = con->v1.out_kvec_cur[con->v1.out_kvec_left - 1].iov_len;
144 BUG_ON(con->v1.out_kvec_bytes < skip);
145 BUG_ON(!con->v1.out_kvec_left);
146 con->v1.out_kvec_bytes -= skip;
147 con->v1.out_kvec_left--;
188 con->v1.out_more = m->more_to_follow;
189 con->v1.out_msg_done = true;
201 con->v1.out_msg_done = false;
208 con->v1.out_temp_ack = cpu_to_le64(con->in_seq_acked);
209 con_out_kvec_add(con, sizeof(con->v1.out_temp_ack),
210 &con->v1.out_temp_ack);
225 con_out_kvec_add(con, sizeof(con->v1.out_hdr), &con->v1.out_hdr);
235 memcpy(&con->v1.out_hdr, &con->out_msg->hdr, sizeof(con->v1.out_hdr));
255 con->v1.out_more = 1; /* data + footer will follow */
277 con->v1.out_temp_ack = cpu_to_le64(con->in_seq_acked);
278 con_out_kvec_add(con, sizeof(con->v1.out_temp_ack),
279 &con->v1.out_temp_ack);
281 con->v1.out_more = 1; /* more will follow.. eventually.. */
296 con->v1.out_temp_ack = cpu_to_le64(con->in_seq_acked);
297 con_out_kvec_add(con, sizeof(con->v1.out_temp_ack),
298 &con->v1.out_temp_ack);
315 ceph_encode_timespec64(&con->v1.out_temp_keepalive2, &now);
316 con_out_kvec_add(con, sizeof(con->v1.out_temp_keepalive2),
317 &con->v1.out_temp_keepalive2);
334 con->v1.auth = NULL;
335 con->v1.out_connect.authorizer_protocol = CEPH_AUTH_UNKNOWN;
336 con->v1.out_connect.authorizer_len = 0;
340 auth = con->ops->get_authorizer(con, &auth_proto, con->v1.auth_retry);
344 con->v1.auth = auth;
345 con->v1.out_connect.authorizer_protocol = cpu_to_le32(auth_proto);
346 con->v1.out_connect.authorizer_len =
360 con->v1.out_more = 0;
366 con_out_kvec_add(con, sizeof(con->v1.out_connect),
367 &con->v1.out_connect);
368 if (con->v1.auth)
369 con_out_kvec_add(con, con->v1.auth->authorizer_buf_len,
370 con->v1.auth->authorizer_buf);
372 con->v1.out_more = 0;
397 con->v1.connect_seq, global_seq, proto);
399 con->v1.out_connect.features =
401 con->v1.out_connect.host_type = cpu_to_le32(CEPH_ENTITY_TYPE_CLIENT);
402 con->v1.out_connect.connect_seq = cpu_to_le32(con->v1.connect_seq);
403 con->v1.out_connect.global_seq = cpu_to_le32(global_seq);
404 con->v1.out_connect.protocol_version = cpu_to_le32(proto);
405 con->v1.out_connect.flags = 0;
425 dout("write_partial_kvec %p %d left\n", con, con->v1.out_kvec_bytes);
426 while (con->v1.out_kvec_bytes > 0) {
427 ret = ceph_tcp_sendmsg(con->sock, con->v1.out_kvec_cur,
428 con->v1.out_kvec_left,
429 con->v1.out_kvec_bytes,
430 con->v1.out_more);
433 con->v1.out_kvec_bytes -= ret;
434 if (!con->v1.out_kvec_bytes)
438 while (ret >= con->v1.out_kvec_cur->iov_len) {
439 BUG_ON(!con->v1.out_kvec_left);
440 ret -= con->v1.out_kvec_cur->iov_len;
441 con->v1.out_kvec_cur++;
442 con->v1.out_kvec_left--;
446 con->v1.out_kvec_cur->iov_len -= ret;
447 con->v1.out_kvec_cur->iov_base += ret;
450 con->v1.out_kvec_left = 0;
454 con->v1.out_kvec_bytes, con->v1.out_kvec_left, ret);
531 dout("%s %p %d left\n", __func__, con, con->v1.out_skip);
532 while (con->v1.out_skip > 0) {
533 size_t size = min(con->v1.out_skip, (int)PAGE_SIZE);
539 con->v1.out_skip -= ret;
552 con->v1.in_base_pos = 0;
558 con->v1.in_base_pos = 0;
564 con->v1.in_base_pos = 0;
570 con->v1.in_base_pos = 0;
571 con->v1.in_tag = CEPH_MSGR_TAG_SEQ;
577 con->v1.in_base_pos = 0;
578 con->v1.in_tag = CEPH_MSGR_TAG_READY;
584 con->v1.in_base_pos = 0;
594 con->v1.in_base_pos = 0;
602 while (con->v1.in_base_pos < end) {
603 int left = end - con->v1.in_base_pos;
608 con->v1.in_base_pos += ret;
622 dout("read_partial_banner %p at %d\n", con, con->v1.in_base_pos);
627 ret = read_partial(con, end, size, con->v1.in_banner);
631 size = sizeof(con->v1.actual_peer_addr);
633 ret = read_partial(con, end, size, &con->v1.actual_peer_addr);
636 ceph_decode_banner_addr(&con->v1.actual_peer_addr);
638 size = sizeof(con->v1.peer_addr_for_me);
640 ret = read_partial(con, end, size, &con->v1.peer_addr_for_me);
643 ceph_decode_banner_addr(&con->v1.peer_addr_for_me);
655 dout("read_partial_connect %p at %d\n", con, con->v1.in_base_pos);
657 size = sizeof(con->v1.in_reply);
659 ret = read_partial(con, end, size, &con->v1.in_reply);
663 if (con->v1.auth) {
664 size = le32_to_cpu(con->v1.in_reply.authorizer_len);
665 if (size > con->v1.auth->authorizer_reply_buf_len) {
667 con->v1.auth->authorizer_reply_buf_len);
674 con->v1.auth->authorizer_reply_buf);
680 con, con->v1.in_reply.tag,
681 le32_to_cpu(con->v1.in_reply.connect_seq),
682 le32_to_cpu(con->v1.in_reply.global_seq));
692 if (memcmp(con->v1.in_banner, CEPH_BANNER, strlen(CEPH_BANNER))) {
715 if (memcmp(&con->peer_addr, &con->v1.actual_peer_addr,
717 !(ceph_addr_is_blank(&con->v1.actual_peer_addr) &&
718 con->v1.actual_peer_addr.nonce == con->peer_addr.nonce)) {
722 ceph_pr_addr(&con->v1.actual_peer_addr),
723 le32_to_cpu(con->v1.actual_peer_addr.nonce));
733 &con->v1.peer_addr_for_me.in_addr,
734 sizeof(con->v1.peer_addr_for_me.in_addr));
748 u64 server_feat = le64_to_cpu(con->v1.in_reply.features);
751 dout("process_connect on %p tag %d\n", con, con->v1.in_tag);
753 if (con->v1.auth) {
754 int len = le32_to_cpu(con->v1.in_reply.authorizer_len);
763 if (con->v1.in_reply.tag ==
766 con, con->v1.auth->authorizer_reply_buf, len);
785 switch (con->v1.in_reply.tag) {
800 le32_to_cpu(con->v1.out_connect.protocol_version),
801 le32_to_cpu(con->v1.in_reply.protocol_version));
806 con->v1.auth_retry++;
808 con->v1.auth_retry);
809 if (con->v1.auth_retry == 2) {
829 le32_to_cpu(con->v1.in_reply.connect_seq));
855 le32_to_cpu(con->v1.out_connect.connect_seq),
856 le32_to_cpu(con->v1.in_reply.connect_seq));
857 con->v1.connect_seq = le32_to_cpu(con->v1.in_reply.connect_seq);
871 con->v1.peer_global_seq,
872 le32_to_cpu(con->v1.in_reply.global_seq));
874 le32_to_cpu(con->v1.in_reply.global_seq));
896 con->v1.auth_retry = 0; /* we authenticated; clear flag */
897 con->v1.peer_global_seq =
898 le32_to_cpu(con->v1.in_reply.global_seq);
899 con->v1.connect_seq++;
902 con->v1.peer_global_seq,
903 le32_to_cpu(con->v1.in_reply.connect_seq),
904 con->v1.connect_seq);
905 WARN_ON(con->v1.connect_seq !=
906 le32_to_cpu(con->v1.in_reply.connect_seq));
908 if (con->v1.in_reply.flags & CEPH_MSG_CONNECT_LOSSY)
913 if (con->v1.in_reply.tag == CEPH_MSGR_TAG_SEQ) {
943 int size = sizeof(con->v1.in_temp_ack);
946 return read_partial(con, end, size, &con->v1.in_temp_ack);
954 u64 ack = le64_to_cpu(con->v1.in_temp_ack);
956 if (con->v1.in_tag == CEPH_MSGR_TAG_ACK)
1041 if (con->v1.in_sr_kvec.iov_base)
1043 &con->v1.in_sr_kvec,
1044 con->v1.in_sr_len,
1051 memset(&con->v1.in_sr_kvec, 0, sizeof(con->v1.in_sr_kvec));
1053 (char **)&con->v1.in_sr_kvec.iov_base);
1058 con->v1.in_sr_len = ret;
1162 size = sizeof(con->v1.in_hdr);
1164 ret = read_partial(con, end, size, &con->v1.in_hdr);
1168 crc = crc32c(0, &con->v1.in_hdr, offsetof(struct ceph_msg_header, crc));
1169 if (cpu_to_le32(crc) != con->v1.in_hdr.crc) {
1171 crc, con->v1.in_hdr.crc);
1175 front_len = le32_to_cpu(con->v1.in_hdr.front_len);
1178 middle_len = le32_to_cpu(con->v1.in_hdr.middle_len);
1181 data_len = le32_to_cpu(con->v1.in_hdr.data_len);
1186 seq = le64_to_cpu(con->v1.in_hdr.seq);
1192 con->v1.in_base_pos = -front_len - middle_len - data_len -
1194 con->v1.in_tag = CEPH_MSGR_TAG_READY;
1207 dout("got hdr type %d front %d data %d\n", con->v1.in_hdr.type,
1209 ret = ceph_con_in_msg_alloc(con, &con->v1.in_hdr, &skip);
1217 con->v1.in_base_pos = -front_len - middle_len -
1219 con->v1.in_tag = CEPH_MSGR_TAG_READY;
1339 dout("try_read tag %d in_base_pos %d\n", con->v1.in_tag,
1340 con->v1.in_base_pos);
1378 if (con->v1.in_base_pos < 0) {
1382 ret = ceph_tcp_recvmsg(con->sock, NULL, -con->v1.in_base_pos);
1385 dout("skipped %d / %d bytes\n", ret, -con->v1.in_base_pos);
1386 con->v1.in_base_pos += ret;
1387 if (con->v1.in_base_pos)
1390 if (con->v1.in_tag == CEPH_MSGR_TAG_READY) {
1394 ret = ceph_tcp_recvmsg(con->sock, &con->v1.in_tag, 1);
1397 dout("try_read got tag %d\n", con->v1.in_tag);
1398 switch (con->v1.in_tag) {
1416 if (con->v1.in_tag == CEPH_MSGR_TAG_MSG) {
1432 if (con->v1.in_tag == CEPH_MSGR_TAG_READY)
1439 if (con->v1.in_tag == CEPH_MSGR_TAG_ACK ||
1440 con->v1.in_tag == CEPH_MSGR_TAG_SEQ) {
1451 if (con->v1.in_tag == CEPH_MSGR_TAG_KEEPALIVE2_ACK) {
1463 pr_err("try_read bad tag %d\n", con->v1.in_tag);
1494 con->v1.in_tag = CEPH_MSGR_TAG_READY;
1505 dout("try_write out_kvec_bytes %d\n", con->v1.out_kvec_bytes);
1509 if (con->v1.out_kvec_left) {
1514 if (con->v1.out_skip) {
1522 if (con->v1.out_msg_done) {
1571 WARN_ON(con->v1.out_skip);
1573 if (con->v1.out_msg_done) {
1574 con->v1.out_skip += con_out_kvec_skip(con);
1577 con->v1.out_skip += sizeof_footer(con);
1581 con->v1.out_skip += msg->cursor.total_resid;
1583 con->v1.out_skip += con_out_kvec_skip(con);
1584 con->v1.out_skip += con_out_kvec_skip(con);
1587 con->v1.out_kvec_bytes, con->v1.out_skip);
1592 unsigned int front_len = le32_to_cpu(con->v1.in_hdr.front_len);
1593 unsigned int middle_len = le32_to_cpu(con->v1.in_hdr.middle_len);
1594 unsigned int data_len = le32_to_cpu(con->v1.in_hdr.data_len);
1597 con->v1.in_base_pos = con->v1.in_base_pos -
1604 con->v1.in_tag = CEPH_MSGR_TAG_READY;
1607 dout("%s con %p in_base_pos %d\n", __func__, con, con->v1.in_base_pos);
1612 return con->v1.connect_seq;
1617 con->v1.connect_seq = 0;
1618 con->v1.peer_global_seq = 0;
1623 con->v1.out_skip = 0;