--- ./source/private_module/core/trans/xltl_debug.c	2022-03-26 13:56:00.847787711 +0000
+++ ./source/private_module/core/trans/xltl_debug.c.hotpatch	2022-03-28 11:28:45.823331696 +0000
@@ -617,27 +617,27 @@
              char *v_szArgv[] Ĳ 
    : 
    ֵ  : 
- 
  ޸ʷ      :
   1.       : 201588
            : w90005504
     ޸   : ɺ
-
 *****************************************************************************/
+extern OSP_S32 XLTL_GetDbgNodeAndMagicArg(OSP_S32 v_iArgc, char *v_szArgv[], OSP_U32 *v_puiNid, OSP_U32 *v_puiMagic);
+extern OSP_VOID XLTL_CloseConnInfo(XLTL_CONN_S *v_pstXltlConn, OSP_VOID *v_pExecArg);
 OSP_VOID XLTL_DisplayAllConn(OSP_S32 v_iArgc, char *v_szArgv[])
 {
     OSP_U32 uiNid = XNET_MAX_NID_NUM;
-    
-    if (RETURN_OK != XLTL_GetDbgNodeArg(v_iArgc, v_szArgv, &uiNid))
-    {
+    OSP_U32 uiMagic = 0;
+    if (RETURN_OK != XLTL_GetDbgNodeAndMagicArg(v_iArgc, v_szArgv, &uiNid, &uiMagic)) {
         return;
     }
-
     DBG_Print("Dst control ID : %u.\n", uiNid);
     DBG_Print("Local control ID : %u.\n", XLTL_GetLocalNid());
-
-    XLTL_ShowNodeAllConn(uiNid, XLTL_DisplayConnInfo);
-    
+    if (110 == uiMagic) {
+        XLTL_ShowNodeAllConn(uiNid, XLTL_CloseConnInfo);
+    } else {
+        XLTL_ShowNodeAllConn(uiNid, XLTL_DisplayConnInfo);
+    }
     return ;
 }
 
@@ -2233,6 +2233,127 @@
     return g_stXltlIOCtrlCmd[uiOpcode](v_uiOpcode, v_pArgv);
 }
 
+/*****************************************************************************
+     : XLTL_CloseConnInfo
+   : ر
+   : XLTL_CONN_S *v_pstXltlConn
+             OSP_VOID *v_pExecArg
+   : 
+   ֵ  : 
+ 
+ ޸ʷ      :
+  1.       : 2022324
+           : c30006803
+    ޸   : ɺ
+
+*****************************************************************************/
+OSP_VOID XLTL_CloseConnInfo(XLTL_CONN_S *v_pstXltlConn, 
+                              OSP_VOID *v_pExecArg)
+{
+
+    XLTL_SHOW_CONN_ARG_S *pstShowConnArg = v_pExecArg;
+    XLTL_TRAV_BUFFER_MGR_S *pstMgr = &pstShowConnArg->stBuffMgr;
+    OSP_U32 uiSelfQLen = 0;
+    OSP_U32 uiSentQLen = 0;
+
+    // DTS2022011006798: Ӧͨxnet showconn -c nid -k 110ر
+    if (v_pstXltlConn->uiState == XLTL_CONN_ACTIVED)
+    {
+        XLTL_CloseConn(v_pstXltlConn, XLTL_CONN_FLAG_RECONN);
+    }
+
+    if (0 == pstShowConnArg->uiPrintFlag)
+    {
+        pstMgr->uiUsedSize += OSAL_snprintf_s(XLTL_GET_MGR_ADD(pstMgr), XLTL_GET_MGR_LEFT_SIZE(pstMgr), 
+                 XLTL_GET_MGR_LEFT_SIZE(pstMgr),
+                 "%-12s%-12s%-8s%-6s%-11s%-6s%-6s%-9s%-9s%-12s%-13s%-13s%-13s%-13s%-13s%-8s\n",
+                 "Seqid", "seqid(peer)", "attr", "type", "state", "local", "peer",
+                 "priority", "dev_type", "refcnt", "msgnum(self)", "msgnum(sent)", 
+                 "msgnum(total)", "resentCtrl", "refcnt(bit)", "afficnt");
+        pstShowConnArg->uiPrintFlag = 1;
+    }
+
+    v_pstXltlConn->pstDev->pfnGetMsgQNum(v_pstXltlConn, &uiSelfQLen, &uiSentQLen);
+    
+    pstMgr->uiUsedSize += OSAL_snprintf_s(XLTL_GET_MGR_ADD(pstMgr), XLTL_GET_MGR_LEFT_SIZE(pstMgr), 
+              XLTL_GET_MGR_LEFT_SIZE(pstMgr),
+              "%-12u%-12u%-8s%-6s%-11s%-6u%-6u%-9s%-9s%-12u%-13u%-13u%-13u0x%-11llx0x%-11x0x%-8llu\n", 
+              XLTL_GetConnId(v_pstXltlConn),
+              v_pstXltlConn->uiPeerSeqId,
+              g_szConnAttr[v_pstXltlConn->uiAttr],
+              g_szConnType[v_pstXltlConn->uiType],
+              g_szConnStatus[v_pstXltlConn->uiState],
+              v_pstXltlConn->uiSrcNid,
+              v_pstXltlConn->pstPeer->uiNid,
+              g_szPriAttr[v_pstXltlConn->uiPriority],
+              g_szDevType[v_pstXltlConn->pstDev->uiLinkType],
+              OSAL_ATOMIC_READ(&(v_pstXltlConn->stRefCnt)),
+              uiSelfQLen,
+              uiSentQLen,
+              v_pstXltlConn->uiTotalNum,
+              v_pstXltlConn->ullResentCtrl,
+              v_pstXltlConn->uiRefCtrl,
+              v_pstXltlConn->ullAffiCnt);
+
+    return;
+}
+
+/*****************************************************************************
+     : XLTL_GetDbgNodeAndMagicArg
+   : ȡdiagnoseڵID
+   : OSP_S32 v_iArgc    
+             char *v_szArgv[]   
+             OSP_U32 *v_puiNid  
+   : 
+   ֵ  : 
+ 
+ ޸ʷ      :
+  1.       : 2022324
+           : c30006803
+    ޸   : ɺ
+
+*****************************************************************************/
+OSP_S32 XLTL_GetDbgNodeAndMagicArg(OSP_S32 v_iArgc, char *v_szArgv[], OSP_U32 *v_puiNid, OSP_U32 *v_puiMagic)
+{
+    OSP_S32 iRet;
+    OSP_U32 uiNid = XNET_MAX_NID_NUM;
+    OSP_U32 uiMagic = 0;
+    OSP_U32 uiArgc = 0;
+    DBG_OPT_S stOpt = {0};
+   
+    uiArgc = XLTL_CMD_ARGC((OSP_U32)v_iArgc);
+    while ((iRet = DBG_GetOpt(uiArgc - 1, &v_szArgv[1], "c:k:", &stOpt)) != -1)
+    {
+        if ('c' == iRet)
+        {
+            uiNid = (OSP_U32)LVOS_StrToS64(stOpt.szOptArg);
+        }
+        else if ('k' == iRet)
+        {
+            uiMagic = (OSP_U32)LVOS_StrToS64(stOpt.szOptArg);
+        }
+        else
+        {
+            DBG_Print("Invalid param %c.\n", iRet);
+            DBG_ShowUsageAndErrMsg("%s", stOpt.szErrMsg);
+            
+            return RETURN_ERROR;
+        }
+    }
+
+    if (uiNid >= XNET_MAX_NID_NUM)
+    {
+        DBG_Print("-c parameter error, should be 0 ~ %u. \n", (XNET_MAX_NID_NUM - 1));
+
+        return RETURN_ERROR;
+    }
+
+    *v_puiNid = uiNid;
+    *v_puiMagic = uiMagic;
+
+    return RETURN_OK;
+}
+
 #ifdef __cplusplus
 #if __cplusplus
 }
