⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pgacl.c

📁 vt6528芯片交换机API函数和文档运行程序
💻 C
📖 第 1 页 / 共 2 页
字号:
};

SItemString aSIStringIpCfg[] = {
    {g_UCfgBuf.SPageCfg_ACL.SCurGrp.UACLPageCfgBuf.SACLIpv4GrpPgBuf.szSIp,      IP_STRING_LEN},
    {g_UCfgBuf.SPageCfg_ACL.SCurGrp.UACLPageCfgBuf.SACLIpv4GrpPgBuf.szSIpMsk,   IP_STRING_LEN},
    {g_UCfgBuf.SPageCfg_ACL.SCurGrp.UACLPageCfgBuf.SACLIpv4GrpPgBuf.szDIp,      IP_STRING_LEN},
    {g_UCfgBuf.SPageCfg_ACL.SCurGrp.UACLPageCfgBuf.SACLIpv4GrpPgBuf.szDIpMsk,   IP_STRING_LEN}
};

SVarLabel aSVarLabelACLGrp_Ipv4[] = {
    {{5,14}, &aSIDecNumACLGrp[0], "", ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE},//group id
    {{5,21}, &aSIDecNumACLGrp[1], "", ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE}//max group id
};

SVarLabel aSVarLabelACLGrp_NIpv4[] = {
    {{7,39}, &aSIDecNumACLGrp[0], "", ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE},//group id
    {{7,46}, &aSIDecNumACLGrp[1], "", ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE}//max group id
};

//Assign items for Ipv4 based group with TCP protocol
SItem aSItemACLGrp_Ipv4TCP[] = {
    {{ 5,14}, &aSIDecNumACLGrp[0], " ", ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE},//group id
    {{7,13}, &aSItemListboxACLGrp[0], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//action 
    {{11,9}, &aSItemListboxACLGrp[1], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//vlan   
    {{12,10}, &aSIDecNumACLGrp[2], " ", ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE}, //vid   	
    {{14,16}, &aSItemListboxACLGrp[4], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//fragement check
    {{16,19}, &aSItemListboxACLGrp[2], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//Src Ip enable    
    {{17,19}, &aSIStringIpCfg[0], " ", ITEM_STRING, REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Src Ip
    {{18,19}, &aSIStringIpCfg[1], " ", ITEM_STRING, REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Src Ip Msk
    {{11,57}, &aSItemListboxACLGrp[3], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//Dst Ip enable
    {{12,57}, &aSIStringIpCfg[2], " ", ITEM_STRING, REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Dsc Ip
    {{13,57}, &aSIStringIpCfg[3], " ", ITEM_STRING, REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Dsc Ip Msk
    {{16,54}, &aSItemListboxACLGrp[7], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//L4 protocol
    {{16,71}, &aSIDecNumACLGrp[5], sg_strEditL4ProtoMsg, ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Another L4 protocol     
    {{17,54}, &aSItemListboxACLGrp[5], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//TCP Dst port 
    {{17,71}, &aSIDecNumACLGrp[3], sg_strEditTCPDstPortMsg, ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Another TCP Dst port 
};

//Assign items for Ipv4 based group with UDP protocol
SItem aSItemACLGrp_Ipv4UDP[] = {
    {{ 5,14}, &aSIDecNumACLGrp[0], " ", ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE},//group id
    {{7,13}, &aSItemListboxACLGrp[0], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//action 
    {{11,9}, &aSItemListboxACLGrp[1], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//vlan   
    {{12,10}, &aSIDecNumACLGrp[2], " ", ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE}, //vid   	
    {{14,16}, &aSItemListboxACLGrp[4], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//fragement check
    {{16,19}, &aSItemListboxACLGrp[2], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//Src Ip enable    
    {{17,19}, &aSIStringIpCfg[0], " ", ITEM_STRING, REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Src Ip
    {{18,19}, &aSIStringIpCfg[1], " ", ITEM_STRING, REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Src Ip Msk
    {{11,57}, &aSItemListboxACLGrp[3], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//Dst Ip enable
    {{12,57}, &aSIStringIpCfg[2], " ", ITEM_STRING, REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Dsc Ip
    {{13,57}, &aSIStringIpCfg[3], " ", ITEM_STRING, REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Dsc Ip Msk
    {{16,54}, &aSItemListboxACLGrp[7], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//L4 protocol
    {{16,71}, &aSIDecNumACLGrp[5], sg_strEditL4ProtoMsg, ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE},//Another L4 protocol     
    {{17,54}, &aSItemListboxACLGrp[6], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//UDP Dst port 
    {{17,71}, &aSIDecNumACLGrp[4], sg_strEditUDPDstPortMsg, ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE}//Another UDP Dst port 
};

////Assign items for Non-Ipv4 based group
SItem aSItemACLGrp_NIpv4[] = {
    {{ 7,39}, &aSIDecNumACLGrp[0], " ", ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE},//group id
    {{9,38}, &aSItemListboxACLGrp[0], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//action 
    {{13,40}, &aSItemListboxACLGrp[1], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//vlan   
    {{14,41}, &aSIDecNumACLGrp[2], " ", ITEM_DECNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE}, //vid   
    {{16,40}, &aSItemListboxACLGrp[8], " ", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},//ether protocol
    {{17,42}, &aSIHexNumACLGrp[0], sg_strEditEtherTypeMsg, ITEM_HEXNUM,  REPEAT_TYPE_NONE, LINK_TYPE_NONE}//ether protocol 
};


//Action
SActItem aSActionACLGrpEdit[] = {
    {{22, 12}, g_strActionQuit, PAACT_bQuit},    
#if ACL_OP_EDIT_EXIST
    {{22, 22}, g_strActionEdit, PAACT_bACLEditGrpContent},
    {{22, 32}, g_strActionSave, PAACL_bSaveACLGrpEdit},
#endif    
};


SActItem aSActionACLGrpAdd[] = {
    {{22, 12}, g_strActionQuit, PAACT_bQuit},
    {{22, 22}, g_strActionEdit, PAACT_bACLEditGrpContent},
    {{22, 32}, g_strActionSave, PAACL_bSaveACLGrpAdd},
};


//Page

//Ipv4 based edit page
SPage g_SPageACLEdit_Ipv4 = {
    aSFixLabelACLGrpEdit_Ipv4, 21,
    aSVarLabelACLGrp_Ipv4, 1,
    aSItemACLGrp_Ipv4TCP+1, 12,
#if ACL_OP_EDIT_EXIST    
    aSActionACLGrpEdit, 3,
#else
    aSActionACLGrpEdit, 1,  //Only list the configuration of a group
#endif
    PAACL_bLoadACLGrpEdit    //Load  group
};

//Ipv4 based ACL group with TCP protocol edit page
SPage g_SPageACLEdit_Ipv4TCP = {
    aSFixLabelACLGrpEdit_Ipv4TCP, 23,
    aSVarLabelACLGrp_Ipv4, 1,
    aSItemACLGrp_Ipv4TCP+1, 14,
#if ACL_OP_EDIT_EXIST    
    aSActionACLGrpEdit, 3,
#else
    aSActionACLGrpEdit, 1,  //Only list the configuration of a group
#endif
    PAACL_bLoadACLGrpEdit    //Load  group  
};

//Ipv4 based ACL group with UDP protocol edit page
SPage g_SPageACLEdit_Ipv4UDP = {
    aSFixLabelACLGrpEdit_Ipv4UDP, 23,
    aSVarLabelACLGrp_Ipv4, 1,
    aSItemACLGrp_Ipv4UDP+1, 14,
#if ACL_OP_EDIT_EXIST    
    aSActionACLGrpEdit, 3,
#else
    aSActionACLGrpEdit, 1,  //Only list the configuration of a group
#endif
    PAACL_bLoadACLGrpEdit    //the LOAD function  
};

//Ipv4 based add page
SPage g_SPageACLAdd_Ipv4 = {
    aSFixLabelACLGrpEdit_Ipv4+3, 22,
    aSVarLabelACLGrp_Ipv4+1, 1,
    aSItemACLGrp_Ipv4TCP, 13,
    aSActionACLGrpAdd, 3,
    PAACL_bLoadACLGrpAdd    //Init group     		
};

//Ipv4 based ACL group with TCP protocol add page
SPage g_SPageACLAdd_Ipv4TCP = {
    aSFixLabelACLGrpEdit_Ipv4TCP+3, 24,
    aSVarLabelACLGrp_Ipv4+1, 1,
    aSItemACLGrp_Ipv4TCP, 15,
    aSActionACLGrpAdd, 3,
    PAACL_bLoadACLGrpAdd    //Init group     		
};

//Ipv4 based ACL group with UDP protocol add page
SPage g_SPageACLAdd_Ipv4UDP = {
    aSFixLabelACLGrpEdit_Ipv4UDP+3, 24,
    aSVarLabelACLGrp_Ipv4+1, 1,
    aSItemACLGrp_Ipv4UDP, 15,
    aSActionACLGrpAdd, 3,
    PAACL_bLoadACLGrpAdd    //the LOAD function    		
};

//Non-Ipv4 based edit page
SPage g_SPageACLEdit_NIpv4 = {
    aSFixLabelACLGrpEdit_NIpv4, 13,
    aSVarLabelACLGrp_NIpv4, 1,
    aSItemACLGrp_NIpv4+1, 5,
#if ACL_OP_EDIT_EXIST    
    aSActionACLGrpEdit, 3,
#else
    aSActionACLGrpEdit, 1,  //Only list the configuration of a group
#endif
    PAACL_bLoadACLGrpEdit    //the LOAD function  
};

//Non-Ipv4 based add page
SPage g_SPageACLAdd_NIpv4 = {
    aSFixLabelACLGrpEdit_NIpv4+3, 14,
    aSVarLabelACLGrp_NIpv4+1, 1,
    aSItemACLGrp_NIpv4, 6,
    aSActionACLGrpAdd, 3,
    PAACL_bLoadACLGrpAdd    //the LOAD function    		
};

/////////////////////////////////////////////////////////////////////////////////////
#define g_pSPageACL       (&g_UCfgBuf.SPageCfg_ACL)
#define g_byACLMode        (g_UCfgBuf.SPageCfg_ACL.byACLMode)
#define g_byACLSpace        (g_UCfgBuf.SPageCfg_ACL.byACLSpace)
#define g_wValidEntryNum    (g_UCfgBuf.SPageCfg_ACL.wValidEntryNum)
#define g_pSCurGrp          (&g_UCfgBuf.SPageCfg_ACL.SCurGrp)
#define g_abyValidGrpIdList  (g_UCfgBuf.SPageCfg_ACL.abyValidGrpIdList)

static UINT8 sg_abyACLIpv4EditPageID[] = {PAGE_ACL_EDIT_IPV4, PAGE_ACL_EDIT_IPV4_TCP, PAGE_ACL_EDIT_IPV4_UDP};
static UINT8 sg_abyACLIpv4AddPageID[] = {PAGE_ACL_ADD_IPV4, PAGE_ACL_ADD_IPV4_TCP, PAGE_ACL_ADD_IPV4_UDP};

//Functions
BOOL PAACL_bNextPage(void)
{
    g_byMultiPageNo ++;
    g_byMultiPageNo %= sg_byACLTotalPageNum;

    return RELOAD_PAGE;  // Reload cfg and print whole page
}

static void s_vUpdateGrpNumPerPage(void)
{
    sg_byACLLineNumPerPage = ((80/ACL_POS_COL_OFFSET + ((80%ACL_POS_COL_OFFSET) ? 1 : 0))*ROW_NUM_IN_3_FIELD);
    if (g_wValidEntryNum) {
        if (g_wValidEntryNum % sg_byACLLineNumPerPage) {
            sg_byACLTotalPageNum = ((g_wValidEntryNum / sg_byACLLineNumPerPage) + 1);        
            g_wTotalLineNum = ((g_byMultiPageNo < (sg_byACLTotalPageNum-1)) ? sg_byACLLineNumPerPage : (g_wValidEntryNum % sg_byACLLineNumPerPage));
        }
        else {
            sg_byACLTotalPageNum = (g_wValidEntryNum / sg_byACLLineNumPerPage);            
            g_wTotalLineNum = sg_byACLLineNumPerPage;
        }
    }
    else {   //Group num = 0
        sg_byACLTotalPageNum = 1;    
        g_wTotalLineNum = 0;
    }
}

//Patch hardware
//Lode vlan mode to detect whether vlan is disabled
//If vlan is disabled, jump to previous page
//Because ACL can not work then VLAN is disabled in current version of hardware
BOOL PAACL_bLoadVlanMode(void)
{
    UINT8 byVlanMode;
    PIVLAN_vGetVlanMode(&byVlanMode);
    
    if (byVlanMode == VLAN_MODE_DISABLE) {
        PIMSG_vPutMsgThenPause(ACL_OP_VLAN_MODE_DISABLED);
        g_byCurPageID = g_abyPreviousPageID[g_byCurPageID];   // jump to previous page
        return RELOAD_PAGE;
    }
    return DONT_RELOAD_PAGE;
}

//load all Ipv4 based ACL group
BOOL PAACL_bLoadACLIpv4Grp(void)
{
    PIACL_vInitPage(g_pSPageACL, FALSE, TRUE);//only load Ipv4 Group
    s_vUpdateGrpNumPerPage();	
    return DONT_RELOAD_PAGE;
}

BOOL PAACL_bLoadACLNonIpv4Grp(void)
{
    PIACL_vInitPage(g_pSPageACL, FALSE, FALSE);//only load non_Ipv4 Group
    s_vUpdateGrpNumPerPage();	
    return DONT_RELOAD_PAGE;
}

BOOL PAACL_bEditACLGrp(void)
{
    if (g_wTotalLineNum) {      //continue if no group exist
        
        if (PAACT_bEdit())
            return RELOAD_PAGE;
        // Deal with LINK_TYPE_EDITPAGE
        else if (g_byCurKey == MK_ENTER && g_SCurItem.f2LinkType == LINK_TYPE_EDITPAGE) {
    	    if (g_byCurPageID==PAGE_ACL_LIST_IPV4)
                g_byCurPageID = PAGE_ACL_EDIT_IPV4; //The IPV4 edit page id
            else
                g_byCurPageID = PAGE_ACL_EDIT_NON_IPV4; //The NON_IPV4 edit page id	
            return RELOAD_PAGE;  // reload cfg and print whole page
        }
    }
    
    return DONT_RELOAD_PAGE;
}

BOOL PAACL_bAddACLGrp(void)
{
    if (g_byCurPageID==PAGE_ACL_LIST_IPV4)
        g_byCurPageID = PAGE_ACL_ADD_IPV4;//The IPV4 add page id
    else
        g_byCurPageID = PAGE_ACL_ADD_NON_IPV4;//The NON_IPV4 add page id
	 
    return RELOAD_PAGE;  // reload cfg and print whole page
}

BOOL PAACL_bDelACLGrp(void)
{
    UINT8    u8OldTmp;
    
    // continue if nothing to del
    if (g_wTotalLineNum) {
        
        if (PAACT_bEdit())
            return RELOAD_PAGE;

        if (g_byCurKey == MK_ENTER && g_SCurItem.f2LinkType == LINK_TYPE_EDITPAGE) {
            
            char cKey = ENGcPrintMessage("Continue deleting? [y/N]", PRINT_THEN_PAUSE);

            if (cKey == 'y' || cKey == 'Y') {
                UINT8  byRes;
                
                ENGcPrintMessage("Deleting...", PRINT_THEN_RETURN);
                g_pSCurGrp->u8GrpId = g_abyValidGrpIdList[(g_wCurLineID+g_byMultiPageNo*sg_byACLLineNumPerPage)];
                byRes = PIACL_byDelGrp(g_pSPageACL);
                PIMSG_vPutMsgThenPause(byRes);

                //for deleting all grps in this page, so we must go back to previous page automatically
                u8OldTmp = sg_byACLTotalPageNum;
                s_vUpdateGrpNumPerPage();
                if (u8OldTmp != sg_byACLTotalPageNum) { 
                    g_byMultiPageNo --;
                    g_byMultiPageNo %= sg_byACLTotalPageNum;
                }
                ENGvPrintPage();    //  Reprint page
            }
        }
    }

    return RELOAD_PAGE;
}


// ACL group edit
// load config
BOOL PAACL_bLoadACLGrpEdit(void)
{
    UINT8 byErrCode;
        
    g_pSCurGrp->u8GrpId = g_abyValidGrpIdList[(g_wCurLineID+g_byMultiPageNo*sg_byACLLineNumPerPage)];
    byErrCode = PIACL_byGetCurPageGrp(g_pSPageACL);
    if (byErrCode != OP_OK) {
        PIMSG_vPutMsgThenPause(byErrCode);
        g_byCurPageID = g_abyPreviousPageID[g_byCurPageID];
        return RELOAD_PAGE;
    }
    PAACL_bChangePage();  
    
    return DONT_RELOAD_PAGE;
}

//ACL group add
BOOL PAACL_bLoadACLGrpAdd(void)
{
    STR_pvMemset(g_pSCurGrp, 0, sizeof(SACLGrpPageCfg));
    if (g_byCurPageID == PAGE_ACL_ADD_IPV4) {  //Add a IPV4 based group
        g_pSCurGrp->bIsIpv4=TRUE;
        
        STR_pvMemcpy(g_pSCurGrp->UACLPageCfgBuf.SACLIpv4GrpPgBuf.szSIp,"0.0.0.0",IP_STRING_LEN+1);
        STR_pvMemcpy(g_pSCurGrp->UACLPageCfgBuf.SACLIpv4GrpPgBuf.szSIpMsk,"255.255.255.255",IP_STRING_LEN+1);
        STR_pvMemcpy(g_pSCurGrp->UACLPageCfgBuf.SACLIpv4GrpPgBuf.szDIp,"0.0.0.0",IP_STRING_LEN+1);
        STR_pvMemcpy(g_pSCurGrp->UACLPageCfgBuf.SACLIpv4GrpPgBuf.szDIpMsk,"255.255.255.255",IP_STRING_LEN+1);
    }
    else { //Add a NON-IPV4 based group
        g_pSCurGrp->bIsIpv4=FALSE;    
        STR_pvMemset(&g_pSCurGrp->UACLPageCfgBuf.SACLNonIpv4GrpPgBuf, 0, sizeof(struct SACLNonIpv4GrpPageCfg));
    }
    
    return DONT_RELOAD_PAGE;
}

BOOL PAACL_bChangePage(void)
{
    UINT8 byPageIdIndex = 0;
    PUINT8 pabyPageIDBuf = NULL;

    //First make sure  now adding a Ipv4 based ACL group,
    //Or editing a Ipv4 based ACL group, Otherwise will not change page.
    if (g_byCurPageID >= PAGE_ACL_EDIT_IPV4 && g_byCurPageID <= PAGE_ACL_EDIT_IPV4_UDP) 
        pabyPageIDBuf = sg_abyACLIpv4EditPageID;
    else if (g_byCurPageID >= PAGE_ACL_ADD_IPV4 && g_byCurPageID <= PAGE_ACL_ADD_IPV4_UDP)
        pabyPageIDBuf = sg_abyACLIpv4AddPageID;

    byPageIdIndex = s_byGetACLIpv4PageIDIndex(g_pSCurGrp->UACLPageCfgBuf.SACLIpv4GrpPgBuf.byL4ProtoIndex);
    if (pabyPageIDBuf != NULL)
        if (g_byCurPageID != pabyPageIDBuf[byPageIdIndex]) {
            g_byCurPageID = pabyPageIDBuf[byPageIdIndex];
        
            return RELOAD_PAGE;
    }
    return DONT_RELOAD_PAGE;
}

BOOL PAACT_bACLEditGrpContent(void)
{    
    if (PAACT_bEdit())
        return RELOAD_PAGE;
    
    // deal with dynamic page
    if (PAACL_bChangePage())
        ENGvPrintPage();        //re-print page

    return DONT_RELOAD_PAGE;
}

BOOL PAACL_bSaveACLGrpEdit(void)
{
    UINT8 byErrCode;


    PIMSG_vPutSavingMsg();//print saving message

    byErrCode=PIACL_byEditGrp(g_pSPageACL);
    
    //Operation OK
    return s_bySaveACLGrpMsg(byErrCode);
}

BOOL PAACL_bSaveACLGrpAdd(void)
{
    UINT8 byErrCode;


    PIMSG_vPutSavingMsg();
    
    byErrCode = PIACL_byInsGrp(g_pSPageACL);

    return s_bySaveACLGrpMsg(byErrCode);
}


//Error message in saving a group
static UINT8 s_bySaveACLGrpMsg(UINT8 byErrCode)
{
    PIMSG_vPutMsgThenPause(byErrCode);
    if (byErrCode == OP_OK){
        g_byCurPageID = g_abyPreviousPageID[g_byCurPageID];   
        return RELOAD_PAGE;
    } 
    
    return DONT_RELOAD_PAGE;
}

//Trans L4 protocol to Page ID Index of array
//sg_abyACLIpv4EditPageID[] and sg_abyACLIpv4AddPageID[]
static UINT8 s_byGetACLIpv4PageIDIndex(UINT8 byL4ProtolIndex)
{
    UINT8 byPageIdIndex = 0;    //byPageIdIndex =0     Normal L4 Protolcol(exclude TCP and UDP) or None L4 Protolcol is set
                                //byPageIdIndex =1     L4 Protolcol is TCP
                                //byPageIdIndex =2     L4 Protolcol is UDP
    if (g_abyL4ProtoVal[byL4ProtolIndex] == L4_PROTOCOL_TCP )
        byPageIdIndex = 1; //TCP
    else if (g_abyL4ProtoVal[byL4ProtolIndex] == L4_PROTOCOL_UDP )
        byPageIdIndex = 2; //UDP
    else
        byPageIdIndex = 0; //Normal L4 Protolcol(exclude TCP and UDP) or None L4 Protolcol is set
        
    return byPageIdIndex;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -