LCOV - code coverage report
Current view: top level - legacy/ascend910/framework/nslbdp - hccl_nslbdp_pub.h (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 3 3
Test Date: 2026-08-18 17:47:01 Functions: - 0 0

            Line data    Source code
       1              : /**
       2              :  * Copyright (c) 2025 Huawei Technologies Co., Ltd.
       3              :  * This program is free software, you can redistribute it and/or modify it under the terms and conditions of
       4              :  * CANN Open Software License Agreement Version 2.0 (the "License").
       5              :  * Please refer to the License for details. You may not use this file except in compliance with the License.
       6              :  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
       7              :  * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
       8              :  * See LICENSE in the root of the software repository for the full text of the License.
       9              :  */
      10              : 
      11              : #ifndef HCCL_NSLBDP_PUB_H
      12              : #define HCCL_NSLBDP_PUB_H
      13              : 
      14              : #include <vector>
      15              : #include <memory>
      16              : #include <map>
      17              : #include <mutex>
      18              : #include <hccl/hccl_types.h>
      19              : #include <hccl/hccl_comm.h>
      20              : #include <hccl/hccl_inner.h>
      21              : 
      22              : #include "hccl/base.h"
      23              : #include "hccl_common.h"
      24              : #include "hccl_comm_pub.h"
      25              : #include "mem_device_pub.h"
      26              : #include "topoinfo_struct.h"
      27              : #include "sal_pub.h"
      28              : #include "comm.h"
      29              : #include "topoinfo_exchange_agent.h"
      30              : #include "transport_heterog_def.h"
      31              : #include "../common/src/topo/topoinfo_detect.h"
      32              : #include "coll_alg_param.h"
      33              : 
      34              : namespace hccl {
      35              : 
      36              : const u32 COMM_DESC_MAX_LENGTH = 128; // group name max length
      37              : 
      38              : const u32 COMM_MAX_GLOABLE_ROOTRANK = 256; // group name max length
      39              : 
      40              : // 通信域信息表RankInfo
      41              : struct NslbDpRankInfo {
      42              :     u32 deviceIp;
      43              :     u32 serverIp;
      44              :     u16 podId;
      45              :     u16 rev;
      46              : };
      47              : 
      48              : struct NslbDeviceIp {
      49              :     u32 deviceIp;
      50              : };
      51              : 
      52              : // 表4 RankInfo
      53              : struct TableFourRankInfo {
      54              :     u32 deviceIp;
      55              :     u32 serverIp;
      56              : };
      57              : 
      58              : // 分表1-通信域信息表val
      59           36 : struct NslbDpCommConfigVal {
      60              :     u64 taskId;
      61              :     char commDesc[COMM_DESC_MAX_LENGTH];
      62              :     u64 commInitTime;
      63              :     u16 rankTotalNum;
      64              :     u8 commMd5Sum[16];
      65              :     std::vector<NslbDpRankInfo> rankInfo;
      66              : };
      67              : 
      68              : // 分表1-通信域信息表
      69              : struct NslbDpCommConfigInfo {
      70              :     u64 taskId;
      71              :     char commDesc[COMM_DESC_MAX_LENGTH];
      72              :     u64 commInitTime;
      73              :     u16 packetId;
      74              :     u16 rev;
      75              :     u16 packetNum;
      76              :     u16 revSecond;
      77              :     NslbDeviceIp sendRankInfo[4];
      78              :     u8 commMd5Sum[16];
      79              :     u16 rankTotalNum;
      80              :     u16 rankNum;
      81              :     std::vector<NslbDpRankInfo> rankInfo;
      82              : };
      83              : 
      84              : // 分表2-算子信息表
      85              : struct NslbDpOperatorInfo {
      86              :     u64 taskId; // 配置结构体大小
      87              :     char commDesc[COMM_DESC_MAX_LENGTH];
      88              :     u64 commInitTime;
      89              :     u8 oper;
      90              :     u8 algorithm;
      91              :     u16 rootRank;
      92              :     u64 trafficCnt;
      93              :     u16 l4SPortId;
      94              :     u16 maskLen;
      95              :     u32 sedFlag;
      96              : };
      97              : 
      98              : /*
      99              : // 算法信息表AdjInfo
     100              : struct NslbDpAdjInfo {
     101              :     u16 dstLocalRankId;
     102              :     u8 phaseId;
     103              :     u8 rev;
     104              : };
     105              : 
     106              : // 算法信息表AdjInfo
     107              : struct AdjInfo {
     108              :     u16 dstRankNum;
     109              :     u16 rev;
     110              :     std::vector<NslbDpAdjInfo> nsAdjInfo;
     111              : };
     112              : */
     113              : 
     114              : // 分表3-算法邻接表
     115            2 : struct NslbDpAlgorithmTlv {
     116              :     u64 taskId;
     117              :     char commDesc[COMM_DESC_MAX_LENGTH];
     118              :     u8 commMd5Sum[16];
     119              :     u16 srcLocalRankId;
     120              :     u8 oper;
     121              :     u8 algorithm;
     122              :     u16 rootRank;
     123              :     u16 rev;
     124              :     u16 dstRankNum;
     125              :     u16 revsecond;
     126              :     std::vector<NslbDpAdjInfo> AdjInfo;
     127              : };
     128              : 
     129           18 : struct NslbDpAlgorithmInfo {
     130              :     u64 taskId;
     131              :     char commDesc[COMM_DESC_MAX_LENGTH];
     132              :     u8 commMd5Sum[16];
     133              :     u16 srcLocalRankId;
     134              :     u8 oper;
     135              :     u8 algorithm;
     136              :     u16 rootRank;
     137              :     u16 dstRankNum;
     138              :     std::vector<NslbDpAdjInfo> AdjInfo;
     139              :     u32 sedFlag;
     140              : };
     141              : 
     142              : // 分表4-全局Rank表val
     143              : struct NslbDpGlobalRankVal {
     144              :     u64 taskId;
     145              :     char commDesc[COMM_DESC_MAX_LENGTH];
     146              :     u64 commInitTime;
     147              :     u32 rankTotalNum;
     148              :     u8 commMd5Sum[16];
     149              :     std::vector<TableFourRankInfo> rankInfo;
     150              : };
     151              : 
     152              : // 分表4-全局Rank表
     153              : struct NslbDpGlobalRankInfo {
     154              :     u64 taskId;
     155              :     char commDesc[COMM_DESC_MAX_LENGTH];
     156              :     u64 commInitTime;
     157              :     u16 packetId;
     158              :     u16 rev;
     159              :     u16 packetNum;
     160              :     u16 rev2;
     161              :     NslbDeviceIp sendRankInfo[COMM_MAX_GLOABLE_ROOTRANK];
     162              :     u8 commMd5Sum[16];
     163              :     u32 rankTotalNum;
     164              :     u16 rankNum;
     165              :     u16 rev3;
     166              :     std::vector<TableFourRankInfo> rankInfo;
     167              : };
     168              : 
     169              : // 分表5-全局Rank分布式信息val
     170              : struct NslbDpGlobalDisRankVal {
     171              :     u64 taskId;
     172              :     u32 npuIp;
     173              :     u32 serverIp;
     174              :     u32 nodeId;
     175              :     u8 localRankNum;
     176              :     u8 rev[3];
     177              :     u32 rankTotalNum;
     178              : };
     179              : 
     180              : struct NslbDpGlobalCommInfo {
     181              :     u64 taskId;
     182              :     u32 nodeId;
     183              :     u8 localRankNum;
     184              :     u32 rankTotalNum;
     185              : };
     186              : 
     187              : struct NslbDpRankId {
     188              :     u16 rankID;
     189              : };
     190              : 
     191              : // 分表6-Root Rank分布式信息
     192              : struct NslbDpRootRank {
     193              :     u64 taskId;
     194              :     char commDesc[COMM_DESC_MAX_LENGTH];
     195              :     u64 commInitTime;
     196              :     u8 oper;
     197              :     u8 algorithm;
     198              :     u16 revfir;
     199              :     u16 rootRankNum;
     200              :     u16 revsec;
     201              :     std::vector<NslbDpRankId> rankId;
     202              : };
     203              : 
     204              : constexpr unsigned int TLV_SEND_TYPE_NETCO_INIT = 0;
     205              : constexpr unsigned int TLV_SEND_TYPE_NETCO_DEINIT = 1;
     206              : constexpr unsigned int TLV_SEND_TYPE_TBL_COMM_INFO = 2;
     207              : constexpr unsigned int TLV_SEND_TYPE_TBL_OPER = 3;
     208              : constexpr unsigned int TLV_SEND_TYPE_TBL_ADJ = 4;
     209              : constexpr unsigned int TLV_SEND_TYPE_TBL_RANK = 5;
     210              : constexpr unsigned int TLV_SEND_TYPE_TBL_RANK_DIST = 6;
     211              : constexpr unsigned int TLV_SEND_TYPE_TBL_ROOT_RANK = 7;
     212              : 
     213              : // typedef void *NslbdpCommHandle;
     214              : 
     215              : struct nslb_inithccp_info {
     216              :     s32 version;
     217              :     u32 phyId;
     218              :     u32 nic_posion;
     219              :     u32 reserved[16U];
     220              : };
     221              : 
     222              : } // namespace hccl
     223              : 
     224              : #endif /* HCCL_NSLB_DP_PUB_H */
        

Generated by: LCOV version 2.0-1