Skip to content
Snippets Groups Projects

added xon backpressure to flush tx stream when pause frames are received

Merged Reinier van der Walle requested to merge L2SDP-759 into master
3 unresolved threads

by MAC

Closes L2SDP-759

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
173 sla_out.rddata(c_word_w - 1 DOWNTO 0) <= mm_nof_clk_per_sync;
174 174
175 175 -- Read current BSN
176 176 WHEN 2 =>
177 sla_out.rddata(31 DOWNTO 0) <= mm_current_bsn(31 DOWNTO 0);
178 mm_current_bsn_hi <= mm_current_bsn(63 DOWNTO 32); -- first read low part and preserve high part
177 sla_out.rddata(c_word_w - 1 DOWNTO 0) <= mm_current_bsn(31 DOWNTO 0);
178 mm_current_bsn_hi <= mm_current_bsn(63 DOWNTO 32); -- first read low part and preserve high part
179 179 WHEN 3 =>
180 sla_out.rddata(31 DOWNTO 0) <= mm_current_bsn_hi; -- then read preserved high part
180 sla_out.rddata(c_word_w - 1 DOWNTO 0) <= mm_current_bsn_hi; -- then read preserved high part
181 181
182 182 -- Read current bsn_time_offset
183 183 WHEN 4 =>
184 sla_out.rddata <= RESIZE_UVEC(mm_bsn_time_offset, c_word_w);
184 sla_out.rddata(c_word_w - 1 DOWNTO 0) <= RESIZE_UVEC(mm_bsn_time_offset, c_word_w);
  • 52 52 g_tx_fifo_size : NATURAL := 256; -- 2 * 32b * 256 = 2 M9K (DP interface has 64b data, so at least 2 M9K needed)
    53 53 g_rx_fifo_size : NATURAL := 256; -- 2 * 32b * 256 = 2 M9K (DP interface has 64b data, so at least 2 M9K needed)
    54 54 g_word_alignment_padding : BOOLEAN := FALSE;
    55 g_xon_backpressure : BOOLEAN := FALSE;
  • 247 g_use_empty => TRUE,
    248 g_fifo_size => g_tx_fifo_size
    249 )
    250 PORT MAP (
    251 rst => dp_rst,
    252 clk => dp_clk,
    253
    254 snk_out => snk_out_arr(i),
    255 snk_in => snk_in_arr(i),
    256
    257 src_in => dp_fifo_sc_tx_src_in_arr(i),
    258 src_out => dp_fifo_sc_tx_src_out_arr(i)
    259 );
    260 END GENERATE;
    261
    262 -- When MAC receives pause frames, it's ready signal is low for a long time
    • xon AND ready is denk ik niet ok zo, want de xon gaat per block terwijl ready per clk gaat, dus dat is appels met peren of meters met vierkantemeters combineren.

      Ik denk dat je een dp_xonoff component moet gebruiken ? Dan is er er ook geen extra FIFO nodig ?

    • De xon zit al in de beamlet output dus daar worden de pakketjes al geflushed bij xon = 0. Het probleem is dat bij pause frames de xon op 1 blijft en de ready lang 0 blijft. Als de ready kort 0 is vangt de fill fifo dat wel op. Als de fill fifo te vol raakt gaat zijn ready omlaag, in dat geval willen we pakketten gaan flushen. Aangezien die ready halverwege een pakket 0 kan worden hebben we een extra fifo nodig die dat laatste pakket opvangt.

    • Kun je deze uitleg als engels comment in de VHDL file description toevoegen ? Het is belangrijk dat de gebruiker van tr_10GbE weet dat de Tx naar snk_out_arr.xon moet luisteren en waarom.

      Edited by Eric Kooistra
    • Please register or sign in to reply
  • added 1 commit

    Compare with previous version

  • Eric Kooistra mentioned in commit 7ab94702

    mentioned in commit 7ab94702

  • merged

  • Please register or sign in to reply
    Loading