Commit 59581800 authored by Maciej Lipinski's avatar Maciej Lipinski

[rtu] optimized detection of HW MAC reserved addresses (to be forwarded to CPU)

parent 85c5d183
......@@ -212,7 +212,7 @@ begin
rtu_str_config_i.ff_mac_ptp_ena = '0') else -- stuff disabled
traffic_ptp when (rtu_str_config_i.ff_mac_ll_ena = '0' and
rtu_str_config_i.ff_mac_ptp_ena = '1') else -- stuff disabled
f_mac_in_range(rtu_req_stage_0.dmac,c_bpd_range_lower,c_bpd_range_upper) or traffic_ptp;
f_mac_reserved(rtu_req_stage_0.dmac) or traffic_ptp;
traffic_br <= '0' when (rtu_str_config_i.ff_mac_br_ena ='0') else -- stuff disabled
'1' when (rtu_req_stage_0.dmac = x"FFFFFFFFFFFF") else
......
......@@ -125,8 +125,8 @@ package rtu_private_pkg is
constant c_ff_range_macs_number : integer := 1; -- not implemented
------------------ new stuff ------------------------
constant c_bpd_range_lower : std_logic_vector := x"0180C2000000";
constant c_bpd_range_upper : std_logic_vector := x"0180C200000F";
constant c_bpd_range_lower : std_logic_vector(47 downto 0) := x"0180C2000000";
-- constant c_bpd_range_upper : std_logic_vector := x"0180C200000F";
type t_mac_array is array(integer range <>) of std_logic_vector(47 downto 0);
type t_rtu_special_traffic_config is record
......@@ -167,6 +167,8 @@ package rtu_private_pkg is
function f_mac_in_range(in_mac, in_mac_lower, in_mac_upper : std_logic_vector(47 downto 0)
) return std_logic;
function f_mac_reserved(in_mac: std_logic_vector(47 downto 0)
) return std_logic;
function f_fast_match_mac_lookup(match_config : t_rtu_special_traffic_config;
in_mac : std_logic_vector(47 downto 0)
) return std_logic;
......@@ -554,6 +556,19 @@ package body rtu_private_pkg is
return ret;
end function f_mac_in_range;
function f_mac_reserved(in_mac : std_logic_vector(47 downto 0)
) return std_logic is
variable ret : std_logic;
begin
ret := '0';
if(in_mac(47 downto 8) = c_bpd_range_lower(47 downto 8)) then
ret :='1';
end if;
return ret;
end function f_mac_reserved;
function f_fast_match_mac_lookup(match_config : t_rtu_special_traffic_config;
in_mac : std_logic_vector(47 downto 0)
) return std_logic is
......
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