@@ -468,128 +468,6 @@ void test_efa_rdm_ep_dc_atomic_queue_before_handshake(struct efa_resource **stat
468468 assert_true (txe -> internal_flags & EFA_RDM_OPE_QUEUED_BEFORE_HANDSHAKE );
469469}
470470
471- /**
472- * @brief when delivery complete send was used and handshake packet has not been received
473- * verify the txe is queued
474- *
475- * @param[in] state struct efa_resource that is managed by the framework
476- */
477- void test_efa_rdm_ep_dc_send_queue_before_handshake (struct efa_resource * * state )
478- {
479- struct efa_rdm_ep * efa_rdm_ep ;
480- struct efa_rdm_peer * peer ;
481- struct fi_msg msg = {0 };
482- struct iovec iov ;
483- struct efa_resource * resource = * state ;
484- struct efa_ep_addr raw_addr = {0 };
485- size_t raw_addr_len = sizeof (struct efa_ep_addr );
486- fi_addr_t peer_addr ;
487- int err , numaddr ;
488- struct efa_rdm_ope * txe ;
489-
490- /* disable shm to force using efa device to send */
491- efa_unit_test_resource_construct_rdm_shm_disabled (resource );
492-
493- /* create a fake peer */
494- err = fi_getname (& resource -> ep -> fid , & raw_addr , & raw_addr_len );
495- assert_int_equal (err , 0 );
496- raw_addr .qpn = 1 ;
497- raw_addr .qkey = 0x1234 ;
498- numaddr = fi_av_insert (resource -> av , & raw_addr , 1 , & peer_addr , 0 , NULL );
499- assert_int_equal (numaddr , 1 );
500-
501- msg .addr = peer_addr ;
502- msg .iov_count = 1 ;
503- iov .iov_base = NULL ;
504- iov .iov_len = 0 ;
505- msg .msg_iov = & iov ;
506- msg .desc = NULL ;
507-
508- efa_rdm_ep = container_of (resource -> ep , struct efa_rdm_ep , base_ep .util_ep .ep_fid );
509-
510- /* set peer->flag to EFA_RDM_PEER_REQ_SENT will make efa_rdm_atomic() think
511- * a REQ packet has been sent to the peer (so no need to send again)
512- * handshake has not been received, so we do not know whether the peer support DC
513- */
514- peer = efa_rdm_ep_get_peer (efa_rdm_ep , peer_addr );
515- peer -> flags = EFA_RDM_PEER_REQ_SENT ;
516- peer -> is_local = false;
517-
518- assert_false (efa_rdm_ep -> homogeneous_peers );
519- assert_true (dlist_empty (& efa_rdm_ep -> txe_list ));
520- err = fi_sendmsg (resource -> ep , & msg , FI_DELIVERY_COMPLETE );
521- /* DC has been reuquested, but ep do not know whether peer supports it, therefore
522- * the ope has been queued to domain->ope_queued_list
523- */
524- assert_int_equal (err , 0 );
525- assert_int_equal (efa_unit_test_get_dlist_length (& efa_rdm_ep -> txe_list ), 1 );
526- assert_int_equal (efa_unit_test_get_dlist_length (& (efa_rdm_ep_domain (efa_rdm_ep )-> ope_queued_list )), 1 );
527- txe = container_of (efa_rdm_ep_domain (efa_rdm_ep )-> ope_queued_list .next , struct efa_rdm_ope , queued_entry );
528- assert_true ((txe -> op == ofi_op_msg ));
529- assert_true (txe -> internal_flags & EFA_RDM_OPE_QUEUED_BEFORE_HANDSHAKE );
530- }
531-
532- /**
533- * @brief when delivery complete send was used and handshake packet has not been received
534- * verify the txes are queued before the number of requests reach EFA_RDM_MAX_QUEUED_OPE_BEFORE_HANDSHAKE.
535- * After reaching the limit, fi_send should return -FI_EAGAIN
536- *
537- * @param[in] state struct efa_resource that is managed by the framework
538- */
539- void test_efa_rdm_ep_dc_send_queue_limit_before_handshake (struct efa_resource * * state )
540- {
541- struct efa_rdm_ep * efa_rdm_ep ;
542- struct efa_rdm_peer * peer ;
543- struct fi_msg msg = {0 };
544- struct iovec iov ;
545- struct efa_resource * resource = * state ;
546- struct efa_ep_addr raw_addr = {0 };
547- size_t raw_addr_len = sizeof (struct efa_ep_addr );
548- fi_addr_t peer_addr ;
549- int err , numaddr ;
550- int i ;
551-
552- /* disable shm to force using efa device to send */
553- efa_unit_test_resource_construct_rdm_shm_disabled (resource );
554-
555- /* create a fake peer */
556- err = fi_getname (& resource -> ep -> fid , & raw_addr , & raw_addr_len );
557- assert_int_equal (err , 0 );
558- raw_addr .qpn = 1 ;
559- raw_addr .qkey = 0x1234 ;
560- numaddr = fi_av_insert (resource -> av , & raw_addr , 1 , & peer_addr , 0 , NULL );
561- assert_int_equal (numaddr , 1 );
562-
563- msg .addr = peer_addr ;
564- msg .iov_count = 1 ;
565- iov .iov_base = NULL ;
566- iov .iov_len = 0 ;
567- msg .msg_iov = & iov ;
568- msg .desc = NULL ;
569-
570- efa_rdm_ep = container_of (resource -> ep , struct efa_rdm_ep , base_ep .util_ep .ep_fid );
571-
572- /* set peer->flag to EFA_RDM_PEER_REQ_SENT will make efa_rdm_atomic() think
573- * a REQ packet has been sent to the peer (so no need to send again)
574- * handshake has not been received, so we do not know whether the peer support DC
575- */
576- peer = efa_rdm_ep_get_peer (efa_rdm_ep , peer_addr );
577- peer -> flags = EFA_RDM_PEER_REQ_SENT ;
578- peer -> is_local = false;
579-
580- assert_false (efa_rdm_ep -> homogeneous_peers );
581- assert_true (dlist_empty (& efa_rdm_ep -> txe_list ));
582-
583- for (i = 0 ; i < EFA_RDM_MAX_QUEUED_OPE_BEFORE_HANDSHAKE ; i ++ ) {
584- err = fi_sendmsg (resource -> ep , & msg , FI_DELIVERY_COMPLETE );
585- assert_int_equal (err , 0 );
586- }
587-
588- assert_true (efa_rdm_ep -> ope_queued_before_handshake_cnt == EFA_RDM_MAX_QUEUED_OPE_BEFORE_HANDSHAKE );
589- err = fi_sendmsg (resource -> ep , & msg , FI_DELIVERY_COMPLETE );
590- assert_int_equal (err , - FI_EAGAIN );
591- }
592-
593471/**
594472 * @brief verify tx entry is queued for rma (read or write) request before handshake is made.
595473 *
0 commit comments