summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'fw/v1/classify1.p')
-rw-r--r--fw/v1/classify1.p101
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
473l_mainLoop5_0: 473l_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 492l_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
856l_c1ForwardHeldFirewallPktNoMatch_1_queue_bounce:
857 // Check for Queue Bounce operation
858l_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
865l_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
872l_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
950l_c1ForwardFirewallPktNoMatch_2_queue_bounce:
951 // Check for Queue Bounce operation
952l_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
959l_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
966l_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
1339l_stdHeldPktForward1_no_priority: 1375l_stdHeldPktForward1_no_priority:
1376
1377l_stdHeldPktForward1_queue_bounce:
1378 // Check for Queue Bounce operation
1379l_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
1386l_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
1393l_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
2064l_c1CurPktForward1_1: 2118l_c1CurPktForward1_1:
2119l_c1CurPktForward1_1_queue_bounce:
2120 // Check for Queue Bounce operation
2121l_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
2128l_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
2135l_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
2924l_c1Parse6_copy_host: 2996l_c1Parse6_copy_host:
2997l_c1Parse6_copy_host_queue_bounce:
2998 // Check for Queue Bounce operation
2999l_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
3006l_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
3012l_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