diff options
Diffstat (limited to 'fw/v1/classify1.p')
-rw-r--r-- | fw/v1/classify1.p | 101 |
1 files changed, 95 insertions, 6 deletions
diff --git a/fw/v1/classify1.p b/fw/v1/classify1.p index 621c003..0195435 100644 --- a/fw/v1/classify1.p +++ b/fw/v1/classify1.p | |||
@@ -472,7 +472,7 @@ l_mainLoop5: | |||
472 | call f_c1FirewallRescore | 472 | call f_c1FirewallRescore |
473 | l_mainLoop5_0: | 473 | l_mainLoop5_0: |
474 | #endif | 474 | #endif |
475 | qbbs f_c1Parse, s_flags.info.tStatus_CDENewPacket | 475 | qbbs l_mainLoop9, s_flags.info.tStatus_CDENewPacket |
476 | // jmp fci_mainLoop7 | 476 | // jmp fci_mainLoop7 |
477 | 477 | ||
478 | // if ( (pendingConfig == TRUE) && (Lut1Busy == FALSE) ) then complete modify | 478 | // if ( (pendingConfig == TRUE) && (Lut1Busy == FALSE) ) then complete modify |
@@ -489,8 +489,9 @@ l_mainLoop8: | |||
489 | // Relative jump was out of range | 489 | // Relative jump was out of range |
490 | jmp f_paComLut1CompleteModify // no return | 490 | jmp f_paComLut1CompleteModify // no return |
491 | 491 | ||
492 | 492 | l_mainLoop9: | |
493 | //jmp f_mainLoop | 493 | // Relative jump was out of range |
494 | jmp f_c1Parse | ||
494 | 495 | ||
495 | .leave lut1Scope | 496 | .leave lut1Scope |
496 | .leave pktScope | 497 | .leave pktScope |
@@ -850,8 +851,25 @@ l_c1ForwardHeldFirewallPktNoMatch_1: | |||
850 | // Send the packet on its way | 851 | // Send the packet on its way |
851 | // Free the packet Ext Info | 852 | // Free the packet Ext Info |
852 | mov s_pktExtDescr.threadId, THREADID_CDMA0 | 853 | mov s_pktExtDescr.threadId, THREADID_CDMA0 |
853 | xout XID_PINFO_DST, s_pktExtDescr, SIZE(s_pktExtDescr) | 854 | xout XID_PINFO_DST, s_pktExtDescr, SIZE(s_pktExtDescr) |
854 | 855 | ||
856 | l_c1ForwardHeldFirewallPktNoMatch_1_queue_bounce: | ||
857 | // Check for Queue Bounce operation | ||
858 | l_c1ForwardHeldFirewallPktNoMatch_1_queue_bounce_ddr: | ||
859 | qbbc l_c1ForwardHeldFirewallPktNoMatch_1_queue_bounce_msmc, s_paAclCfg.destQueue.t_pa_forward_queue_bounce_ddr | ||
860 | clr s_paAclCfg.destQueue.t_pa_forward_queue_bounce_ddr | ||
861 | sbco s_paAclCfg.destQueue, cCdeHeldPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2 | ||
862 | lbco s_paAclCfg.destQueue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG, 2 | ||
863 | jmp l_c1ForwardHeldFirewallPktNoMatch_1_queue_bounce_end | ||
864 | |||
865 | l_c1ForwardHeldFirewallPktNoMatch_1_queue_bounce_msmc: | ||
866 | qbbc l_c1ForwardHeldFirewallPktNoMatch_1_queue_bounce_end, s_paAclCfg.destQueue.t_pa_forward_queue_bounce_msmc | ||
867 | clr s_paAclCfg.destQueue.t_pa_forward_queue_bounce_msmc | ||
868 | sbco s_paAclCfg.destQueue, cCdeHeldPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2 | ||
869 | lbco s_paAclCfg.destQueue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG+2, 2 | ||
870 | // pass through | ||
871 | |||
872 | l_c1ForwardHeldFirewallPktNoMatch_1_queue_bounce_end: | ||
855 | // CDE workaround: do not use CDE_FLG_SET_DESTQUEUE | 873 | // CDE workaround: do not use CDE_FLG_SET_DESTQUEUE |
856 | //ldi r4, CDE_CMD_HPKT_RELEASE | ((CDE_FLG_SET_FLOWID | CDE_FLG_SET_DESTQUEUE | CDE_FLG_SET_PSINFO) << 8) | 874 | //ldi r4, CDE_CMD_HPKT_RELEASE | ((CDE_FLG_SET_FLOWID | CDE_FLG_SET_DESTQUEUE | CDE_FLG_SET_PSINFO) << 8) |
857 | ldi r4, CDE_CMD_HPKT_RELEASE | ((CDE_FLG_SET_FLOWID | CDE_FLG_SET_PSINFO) << 8) | 875 | ldi r4, CDE_CMD_HPKT_RELEASE | ((CDE_FLG_SET_FLOWID | CDE_FLG_SET_PSINFO) << 8) |
@@ -927,7 +945,25 @@ l_c1ForwardFirewallPktNoMatch_2: | |||
927 | // Host Routing | 945 | // Host Routing |
928 | // Send the packet on its way | 946 | // Send the packet on its way |
929 | // Free the packet Ext Info | 947 | // Free the packet Ext Info |
930 | mov s_pktExtDescr.threadId, THREADID_CDMA0 | 948 | mov s_pktExtDescr.threadId, THREADID_CDMA0 |
949 | |||
950 | l_c1ForwardFirewallPktNoMatch_2_queue_bounce: | ||
951 | // Check for Queue Bounce operation | ||
952 | l_c1ForwardFirewallPktNoMatch_2_queue_bounce_ddr: | ||
953 | qbbc l_c1ForwardFirewallPktNoMatch_2_queue_bounce_msmc, s_paAclCfg.destQueue.t_pa_forward_queue_bounce_ddr | ||
954 | clr s_paAclCfg.destQueue.t_pa_forward_queue_bounce_ddr | ||
955 | sbco s_paAclCfg.destQueue, cCdeHeldPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2 | ||
956 | lbco s_paAclCfg.destQueue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG, 2 | ||
957 | jmp l_c1ForwardFirewallPktNoMatch_2_queue_bounce_end | ||
958 | |||
959 | l_c1ForwardFirewallPktNoMatch_2_queue_bounce_msmc: | ||
960 | qbbc l_c1ForwardFirewallPktNoMatch_2_queue_bounce_end, s_paAclCfg.destQueue.t_pa_forward_queue_bounce_msmc | ||
961 | clr s_paAclCfg.destQueue.t_pa_forward_queue_bounce_msmc | ||
962 | sbco s_paAclCfg.destQueue, cCdeHeldPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2 | ||
963 | lbco s_paAclCfg.destQueue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG+2, 2 | ||
964 | // pass through | ||
965 | |||
966 | l_c1ForwardFirewallPktNoMatch_2_queue_bounce_end: | ||
931 | 967 | ||
932 | // CDE workaround: do not use CDE_FLG_SET_DESTQUEUE | 968 | // CDE workaround: do not use CDE_FLG_SET_DESTQUEUE |
933 | //ldi r4, CDE_CMD_PACKET_ADVANCE | ((CDE_FLG_SET_FLOWID | CDE_FLG_SET_DESTQUEUE | CDE_FLG_SET_PSINFO) << 8) | 969 | //ldi r4, CDE_CMD_PACKET_ADVANCE | ((CDE_FLG_SET_FLOWID | CDE_FLG_SET_DESTQUEUE | CDE_FLG_SET_PSINFO) << 8) |
@@ -1337,6 +1373,24 @@ l_stdHeldPktForward1_dscp_priority: | |||
1337 | mov r2.b2, THREADID_CDMA0 | 1373 | mov r2.b2, THREADID_CDMA0 |
1338 | 1374 | ||
1339 | l_stdHeldPktForward1_no_priority: | 1375 | l_stdHeldPktForward1_no_priority: |
1376 | |||
1377 | l_stdHeldPktForward1_queue_bounce: | ||
1378 | // Check for Queue Bounce operation | ||
1379 | l_stdHeldPktForward1_queue_bounce_ddr: | ||
1380 | qbbc l_stdHeldPktForward1_queue_bounce_msmc, s_matchForward.queue.t_pa_forward_queue_bounce_ddr | ||
1381 | clr s_matchForward.queue.t_pa_forward_queue_bounce_ddr | ||
1382 | sbco s_matchForward.queue, cCdeHeldPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2 | ||
1383 | lbco s_matchForward.queue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG, 2 | ||
1384 | jmp l_stdHeldPktForward1_queue_bounce_end | ||
1385 | |||
1386 | l_stdHeldPktForward1_queue_bounce_msmc: | ||
1387 | qbbc l_stdHeldPktForward1_queue_bounce_end, s_matchForward.queue.t_pa_forward_queue_bounce_msmc | ||
1388 | clr s_matchForward.queue.t_pa_forward_queue_bounce_msmc | ||
1389 | sbco s_matchForward.queue, cCdeHeldPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2 | ||
1390 | lbco s_matchForward.queue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG+2, 2 | ||
1391 | // pass through | ||
1392 | |||
1393 | l_stdHeldPktForward1_queue_bounce_end: | ||
1340 | // Note CRC verification is only required by the SCTP header | 1394 | // Note CRC verification is only required by the SCTP header |
1341 | // The destination must be host and there should be neither multi-route nor command set | 1395 | // The destination must be host and there should be neither multi-route nor command set |
1342 | mov r2.b0, SIZE(s_pktCxt) + 8 | 1396 | mov r2.b0, SIZE(s_pktCxt) + 8 |
@@ -2061,7 +2115,25 @@ l_c1CurPktForward1_no_priority: | |||
2061 | qbeq l_c1CurPktForward1_1, r1.b0, 0 | 2115 | qbeq l_c1CurPktForward1_1, r1.b0, 0 |
2062 | sbco r1.b0, cCdeOutPkt, SIZE(s_pktDescr)+OFFSET(s_pktCxt5.l3offset2), 1 | 2116 | sbco r1.b0, cCdeOutPkt, SIZE(s_pktDescr)+OFFSET(s_pktCxt5.l3offset2), 1 |
2063 | 2117 | ||
2064 | l_c1CurPktForward1_1: | 2118 | l_c1CurPktForward1_1: |
2119 | l_c1CurPktForward1_1_queue_bounce: | ||
2120 | // Check for Queue Bounce operation | ||
2121 | l_c1CurPktForward1_1_queue_bounce_ddr: | ||
2122 | qbbc l_c1CurPktForward1_1_queue_bounce_msmc, s_curFwd.queue.t_pa_forward_queue_bounce_ddr | ||
2123 | clr s_curFwd.queue.t_pa_forward_queue_bounce_ddr | ||
2124 | sbco s_curFwd.queue, cCdeOutPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2 | ||
2125 | lbco s_curFwd.queue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG, 2 | ||
2126 | jmp l_c1CurPktForward1_1_queue_bounce_end | ||
2127 | |||
2128 | l_c1CurPktForward1_1_queue_bounce_msmc: | ||
2129 | qbbc l_c1CurPktForward1_1_queue_bounce_end, s_curFwd.queue.t_pa_forward_queue_bounce_msmc | ||
2130 | clr s_curFwd.queue.t_pa_forward_queue_bounce_msmc | ||
2131 | sbco s_curFwd.queue, cCdeOutPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2 | ||
2132 | lbco s_curFwd.queue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG+2, 2 | ||
2133 | // pass through | ||
2134 | |||
2135 | l_c1CurPktForward1_1_queue_bounce_end: | ||
2136 | |||
2065 | // Check whether command set is enabled, which precedes the multi-route option | 2137 | // Check whether command set is enabled, which precedes the multi-route option |
2066 | qbeq l_c1CurPktForward8, s_curFwdRxCmdHdr.cmd, PA_RX_CMD_CMDSET | 2138 | qbeq l_c1CurPktForward8, s_curFwdRxCmdHdr.cmd, PA_RX_CMD_CMDSET |
2067 | qbeq l_c1CurPktForward8, s_curFwdRxCmdHdr.cmd, PA_RX_CMD_CMDSET_USR_STATS | 2139 | qbeq l_c1CurPktForward8, s_curFwdRxCmdHdr.cmd, PA_RX_CMD_CMDSET_USR_STATS |
@@ -2922,6 +2994,23 @@ l_c1Parse6_copy: | |||
2922 | jmp l_c1Parse6_copy_send | 2994 | jmp l_c1Parse6_copy_send |
2923 | 2995 | ||
2924 | l_c1Parse6_copy_host: | 2996 | l_c1Parse6_copy_host: |
2997 | l_c1Parse6_copy_host_queue_bounce: | ||
2998 | // Check for Queue Bounce operation | ||
2999 | l_c1Parse6_copy_host_queue_bounce_ddr: | ||
3000 | qbbc l_c1Parse6_copy_host_queue_bounce_msmc, s_paPktCapScr.destQueue.t_pa_forward_queue_bounce_ddr | ||
3001 | clr s_paPktCapScr.destQueue.t_pa_forward_queue_bounce_ddr | ||
3002 | sbco s_paPktCapScr.destQueue, cCdeOutPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2 | ||
3003 | lbco s_paPktCapScr.destQueue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG, 2 | ||
3004 | jmp l_c1Parse6_copy_host_queue_bounce_end | ||
3005 | |||
3006 | l_c1Parse6_copy_host_queue_bounce_msmc: | ||
3007 | qbbc l_c1Parse6_copy_host_queue_bounce_end, s_paPktCapScr.destQueue.t_pa_forward_queue_bounce_msmc | ||
3008 | clr s_paPktCapScr.destQueue.t_pa_forward_queue_bounce_msmc | ||
3009 | sbco s_paPktCapScr.destQueue, cCdeOutPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2 | ||
3010 | lbco s_paPktCapScr.destQueue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG+2, 2 | ||
3011 | // pass through | ||
3012 | l_c1Parse6_copy_host_queue_bounce_end: | ||
3013 | |||
2925 | // Packet Capture activity | 3014 | // Packet Capture activity |
2926 | mov s_pktExtDescr.threadId, PA_DEST_CDMA | 3015 | mov s_pktExtDescr.threadId, PA_DEST_CDMA |
2927 | mov s_cdeCmdPkt.destQueue, s_paPktCapScr.destQueue | 3016 | mov s_cdeCmdPkt.destQueue, s_paPktCapScr.destQueue |