Commit 7d5c25af authored by Maciej Lipinski's avatar Maciej Lipinski

endpoint/rx_path[bugfix]: masking out RTU request for received PAUSE frames…

endpoint/rx_path[bugfix]: masking out RTU request for received PAUSE frames (these frames never exit Endpoint). The bug (RTU request for no frame) where causing SWcore to go crazy
parent 83e5b186
......@@ -16,6 +16,8 @@ entity ep_rtu_header_extract is
src_fab_o : out t_ep_internal_fabric;
src_dreq_i : in std_logic;
mbuf_is_pause_i : in std_logic;
vlan_class_i : in std_logic_vector(2 downto 0);
vlan_vid_i : in std_logic_vector(11 downto 0);
vlan_tag_done_i : in std_logic;
......@@ -101,8 +103,10 @@ begin -- rtl
rtu_rq_valid_tagged <= rtu_rq_valid_basic and vlan_tag_done_i;
rtu_rq_valid_out <= rtu_rq_valid_tagged when (vlan_is_tagged_i = '1') else
rtu_rq_valid_basic;
-- the request is not done for PAUSE frames as they never go outside of Endpoint
-- (they are dropped inside Endpoint)
rtu_rq_valid_out <= (rtu_rq_valid_tagged and (not mbuf_is_pause_i))when (vlan_is_tagged_i = '1') else
(rtu_rq_valid_basic and (not mbuf_is_pause_i));
end generate gen_with_rtu;
......
......@@ -118,6 +118,7 @@ architecture behavioral of ep_rx_path is
snk_dreq_o : out std_logic;
src_fab_o : out t_ep_internal_fabric;
src_dreq_i : in std_logic;
mbuf_is_pause_i : in std_logic;
vlan_class_i : in std_logic_vector(2 downto 0);
vlan_vid_i : in std_logic_vector(11 downto 0);
vlan_tag_done_i : in std_logic;
......@@ -457,6 +458,11 @@ begin -- behavioral
snk_dreq_o => dreq_pipe(6),
src_fab_o => fab_pipe(7),
src_dreq_i => dreq_pipe(7),
mbuf_is_pause_i => mbuf_is_pause, -- this module is in the pipe before ep_rx_status_reg_insert,
-- however, we know that mbuf_is_pause is valid when it
-- is used by this module -- this is because blocks the pipe
-- untill mbuf_valid is HIGH, and rtu_rq_valid_o is inserted HIGH
-- at the end of the header... (clear ??:)
vlan_class_i => vlan_tclass,
vlan_vid_i => vlan_vid,
vlan_tag_done_i => vlan_tag_done,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment