CFG_THROTTLE_PAUSE_IN : in std_logic_vector(15 downto 0);
-- Forwarder
+FWD_DST_MAC_IN : in std_logic_vector(47 downto 0);
+FWD_DST_IP_IN : in std_logic_vector(31 downto 0);
+FWD_DST_UDP_IN : in std_logic_vector(15 downto 0);
FWD_DATA_IN : in std_logic_vector(7 downto 0);
FWD_DATA_VALID_IN : in std_logic;
FWD_SOP_IN : in std_logic;
CFG_AUTO_THROTTLE_IN => '0', --CFG_AUTO_THROTTLE_IN,
CFG_THROTTLE_PAUSE_IN => (others => '0'), --CFG_THROTTLE_PAUSE_IN,
+ FWD_DST_MAC_IN => FWD_DST_MAC_IN,
+ FWD_DST_IP_IN => FWD_DST_IP_IN,
+ FWD_DST_UDP_IN => FWD_DST_UDP_IN,
FWD_DATA_IN => FWD_DATA_IN,
FWD_DATA_VALID_IN => FWD_DATA_VALID_IN,
FWD_SOP_IN => FWD_SOP_IN,
CFG_AUTO_THROTTLE_IN => CFG_AUTO_THROTTLE_IN,
CFG_THROTTLE_PAUSE_IN => CFG_THROTTLE_PAUSE_IN,
+ FWD_DST_MAC_IN => FWD_DST_MAC_IN,
+ FWD_DST_IP_IN => FWD_DST_IP_IN,
+ FWD_DST_UDP_IN => FWD_DST_UDP_IN,
FWD_DATA_IN => FWD_DATA_IN,
FWD_DATA_VALID_IN => FWD_DATA_VALID_IN,
FWD_SOP_IN => FWD_SOP_IN,
BUS_REG_TX : out CTRLBUS_TX;
-- Forwarder
+FWD_DST_MAC_IN : in std_logic_vector(48 * NUMBER_OF_GBE_LINKS - 1 downto 0);
+FWD_DST_IP_IN : in std_logic_vector(32 * NUMBER_OF_GBE_LINKS - 1 downto 0);
+FWD_DST_UDP_IN : in std_logic_vector(16 * NUMBER_OF_GBE_LINKS - 1 downto 0);
FWD_DATA_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS * 8 - 1 downto 0);
FWD_DATA_VALID_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0);
FWD_SOP_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0);
CFG_AUTO_THROTTLE_IN => cfg_autothrottle,
CFG_THROTTLE_PAUSE_IN => cfg_throttle_pause,
+FWD_DST_MAC_IN => FWD_DST_MAC_IN(4 * 48 - 1 downto 3 * 48),
+FWD_DST_IP_IN => FWD_DST_IP_IN(4 * 32 - 1 downto 3 * 32),
+FWD_DST_UDP_IN => FWD_DST_UDP_IN(4 * 16 - 1 downto 3 * 16),
FWD_DATA_IN => FWD_DATA_IN(4 * 8 - 1 downto 3 * 8),
FWD_DATA_VALID_IN => FWD_DATA_VALID_IN(3),
FWD_SOP_IN => FWD_SOP_IN(3),
CFG_MAX_REPLY_SIZE_IN => cfg_max_reply,
CFG_AUTO_THROTTLE_IN => cfg_autothrottle,
CFG_THROTTLE_PAUSE_IN => cfg_throttle_pause,
-
+FWD_DST_MAC_IN => FWD_DST_MAC_IN(3 * 48 - 1 downto 2 * 48),
+FWD_DST_IP_IN => FWD_DST_IP_IN(3 * 32 - 1 downto 2 * 32),
+FWD_DST_UDP_IN => FWD_DST_UDP_IN(3 * 16 - 1 downto 2 * 16),
FWD_DATA_IN => FWD_DATA_IN(3 * 8 - 1 downto 2 * 8),
FWD_DATA_VALID_IN => FWD_DATA_VALID_IN(2),
FWD_SOP_IN => FWD_SOP_IN(2),
CFG_AUTO_THROTTLE_IN => cfg_autothrottle,
CFG_THROTTLE_PAUSE_IN => cfg_throttle_pause,
+FWD_DST_MAC_IN => FWD_DST_MAC_IN(2 * 48 - 1 downto 1 * 48),
+FWD_DST_IP_IN => FWD_DST_IP_IN(2 * 32 - 1 downto 1 * 32),
+FWD_DST_UDP_IN => FWD_DST_UDP_IN(2 * 16 - 1 downto 1 * 16),
FWD_DATA_IN => FWD_DATA_IN(2 * 8 - 1 downto 1 * 8),
FWD_DATA_VALID_IN => FWD_DATA_VALID_IN(1),
FWD_SOP_IN => FWD_SOP_IN(1),
CFG_AUTO_THROTTLE_IN => cfg_autothrottle,
CFG_THROTTLE_PAUSE_IN => cfg_throttle_pause,
+FWD_DST_MAC_IN => FWD_DST_MAC_IN(1 * 48 - 1 downto 0 * 48),
+FWD_DST_IP_IN => FWD_DST_IP_IN(1 * 32 - 1 downto 0 * 32),
+FWD_DST_UDP_IN => FWD_DST_UDP_IN(1 * 16 - 1 downto 0 * 16),
FWD_DATA_IN => FWD_DATA_IN(1 * 8 - 1 downto 0 * 8),
FWD_DATA_VALID_IN => FWD_DATA_VALID_IN(0),
FWD_SOP_IN => FWD_SOP_IN(0),
MAKE_RESET_OUT : out std_logic;
-- Forwarder
+FWD_DST_MAC_IN : in std_logic_vector(47 downto 0);
+FWD_DST_IP_IN : in std_logic_vector(31 downto 0);
+FWD_DST_UDP_IN : in std_logic_vector(15 downto 0);
FWD_DATA_IN : in std_logic_vector(7 downto 0);
FWD_DATA_VALID_IN : in std_logic;
FWD_SOP_IN : in std_logic;
CFG_AUTO_THROTTLE_IN => CFG_AUTO_THROTTLE_IN,
CFG_THROTTLE_PAUSE_IN => CFG_THROTTLE_PAUSE_IN,
+ FWD_DST_MAC_IN => FWD_DST_MAC_IN,
+ FWD_DST_IP_IN => FWD_DST_IP_IN,
+ FWD_DST_UDP_IN => FWD_DST_UDP_IN,
FWD_DATA_IN => FWD_DATA_IN,
FWD_DATA_VALID_IN => FWD_DATA_VALID_IN,
FWD_SOP_IN => FWD_SOP_IN,
CFG_THROTTLE_PAUSE_IN : in std_logic_vector(15 downto 0);
-- Forwarder
+FWD_DST_MAC_IN : in std_logic_vector(47 downto 0);
+FWD_DST_IP_IN : in std_logic_vector(31 downto 0);
+FWD_DST_UDP_IN : in std_logic_vector(15 downto 0);
FWD_DATA_IN : in std_logic_vector(7 downto 0);
FWD_DATA_VALID_IN : in std_logic;
FWD_SOP_IN : in std_logic;
RECEIVED_FRAMES_OUT => open,
SENT_FRAMES_OUT => open,
+ FWD_DST_MAC_IN => FWD_DST_MAC_IN,
+ FWD_DST_IP_IN => FWD_DST_IP_IN,
+ FWD_DST_UDP_IN => FWD_DST_UDP_IN,
FWD_DATA_IN => FWD_DATA_IN,
FWD_DATA_VALID_IN => FWD_DATA_VALID_IN,
FWD_SOP_IN => FWD_SOP_IN,
SENT_FRAMES_OUT : out std_logic_vector(15 downto 0);
-- END OF INTERFACE
- FWD_DST_MAC_OUT : out std_logic_vector(47 downto 0);
- FWD_DST_IP_OUT : out std_logic_vector(31 downto 0);
- FWD_DST_UDP_OUT : out std_logic_vector(15 downto 0);
+ FWD_DST_MAC_IN : in std_logic_vector(47 downto 0);
+ FWD_DST_IP_IN : in std_logic_vector(31 downto 0);
+ FWD_DST_UDP_IN : in std_logic_vector(15 downto 0);
FWD_DATA_IN : in std_logic_vector(7 downto 0);
FWD_DATA_VALID_IN : in std_logic;
FWD_SOP_IN : in std_logic;
TC_FRAME_SIZE_OUT <= resp_bytes_ctr + x"1";
TC_FRAME_TYPE_OUT <= x"0008";
-TC_DEST_MAC_OUT <= FWD_DST_MAC_OUT;
-TC_DEST_IP_OUT <= FWD_DST_IP_OUT;
-TC_DEST_UDP_OUT <= FWD_DST_UDP_OUT;
+TC_DEST_MAC_OUT <= FWD_DST_MAC_IN;
+TC_DEST_IP_OUT <= FWD_DST_IP_IN;
+TC_DEST_UDP_OUT <= FWD_DST_UDP_IN;
TC_SRC_MAC_OUT <= MY_MAC_IN;
TC_SRC_IP_OUT <= MY_IP_IN;
-TC_SRC_UDP_OUT <= FWD_DST_UDP_OUT;
+TC_SRC_UDP_OUT <= FWD_DST_UDP_IN;
TC_IP_PROTOCOL_OUT <= x"11";
TC_IDENT_OUT <= x"6" & sent_frames(11 downto 0);