MCPcopy Create free account
hub / github.com/F-Stack/f-stack / iavf_check_api_version

Function iavf_check_api_version

dpdk/drivers/net/iavf/iavf_vchnl.c:645–692  ·  view source on GitHub ↗

Check API version with sync wait until version read from admin queue */

Source from the content-addressed store, hash-verified

643
644/* Check API version with sync wait until version read from admin queue */
645int
646iavf_check_api_version(struct iavf_adapter *adapter)
647{
648 struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
649 struct virtchnl_version_info version, *pver;
650 struct iavf_cmd_info args;
651 int err;
652
653 version.major = VIRTCHNL_VERSION_MAJOR;
654 version.minor = VIRTCHNL_VERSION_MINOR;
655
656 args.ops = VIRTCHNL_OP_VERSION;
657 args.in_args = (uint8_t *)&version;
658 args.in_args_size = sizeof(version);
659 args.out_buffer = vf->aq_resp;
660 args.out_size = IAVF_AQ_BUF_SZ;
661
662 err = iavf_execute_vf_cmd_safe(adapter, &args, 0);
663 if (err) {
664 PMD_INIT_LOG(ERR, "Fail to execute command of OP_VERSION");
665 return err;
666 }
667
668 pver = (struct virtchnl_version_info *)args.out_buffer;
669 vf->virtchnl_version = *pver;
670
671 if (vf->virtchnl_version.major < VIRTCHNL_VERSION_MAJOR_START ||
672 (vf->virtchnl_version.major == VIRTCHNL_VERSION_MAJOR_START &&
673 vf->virtchnl_version.minor < VIRTCHNL_VERSION_MINOR_START)) {
674 PMD_INIT_LOG(ERR, "VIRTCHNL API version should not be lower"
675 " than (%u.%u) to support Adaptive VF",
676 VIRTCHNL_VERSION_MAJOR_START,
677 VIRTCHNL_VERSION_MAJOR_START);
678 return -1;
679 } else if (vf->virtchnl_version.major > VIRTCHNL_VERSION_MAJOR ||
680 (vf->virtchnl_version.major == VIRTCHNL_VERSION_MAJOR &&
681 vf->virtchnl_version.minor > VIRTCHNL_VERSION_MINOR)) {
682 PMD_INIT_LOG(ERR, "PF/VF API version mismatch:(%u.%u)-(%u.%u)",
683 vf->virtchnl_version.major,
684 vf->virtchnl_version.minor,
685 VIRTCHNL_VERSION_MAJOR,
686 VIRTCHNL_VERSION_MINOR);
687 return -1;
688 }
689
690 PMD_DRV_LOG(DEBUG, "Peer is supported PF host");
691 return 0;
692}
693
694int
695iavf_get_vf_resource(struct iavf_adapter *adapter)

Callers 1

iavf_init_vfFunction · 0.85

Calls 1

iavf_execute_vf_cmd_safeFunction · 0.85

Tested by

no test coverage detected