]> jspc29.x-matter.uni-frankfurt.de Git - trbnet.git/commitdiff
gbe with forwarder
authorYour Name <you@example.com>
Mon, 18 Sep 2017 13:05:19 +0000 (15:05 +0200)
committerYour Name <you@example.com>
Mon, 18 Sep 2017 13:05:19 +0000 (15:05 +0200)
gbe_trb/base/gbe_logic_wrapper.vhd
gbe_trb/base/gbe_wrapper.vhd
gbe_trb/base/trb_net16_gbe_main_control.vhd
gbe_trb/base/trb_net16_gbe_protocol_selector.vhd
gbe_trb/protocols/trb_net16_gbe_response_constructor_Forward.vhd

index bea47dacb063e81f7f4bd384ac1554845632987c..ce14692da2d8c3626592966fa0c671f4046d3627 100644 (file)
@@ -126,6 +126,9 @@ entity gbe_logic_wrapper is
                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;
@@ -397,6 +400,9 @@ begin
                                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,
@@ -547,6 +553,9 @@ begin
                                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,
index 9d13e11221ad332ad2a3e718d13bb5662b938d22..502fd205615337c396dacd2a41d6e5c8a235b3eb 100644 (file)
@@ -85,6 +85,9 @@ entity gbe_wrapper is
                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);
@@ -376,6 +379,9 @@ begin
                                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),
@@ -507,7 +513,9 @@ FWD_FULL_OUT => FWD_FULL_OUT(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),
@@ -640,6 +648,9 @@ FWD_FULL_OUT => FWD_FULL_OUT(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),
@@ -772,6 +783,9 @@ FWD_FULL_OUT => FWD_FULL_OUT(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),
index 730f77fc1f4d51e2815f9c7e250c37dc5ba4b4af..d36ccf35033b8008df8cc1a0334126bb7516067c 100644 (file)
@@ -145,6 +145,9 @@ entity trb_net16_gbe_main_control is
                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;
@@ -378,6 +381,9 @@ begin
                        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,
index 297516bdbe974beb8a99bf571371125a703cb100..737ad7db11cb86284a750f58e8f02237ef84f70f 100644 (file)
@@ -130,6 +130,9 @@ entity trb_net16_gbe_protocol_selector is
                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;
@@ -598,6 +601,9 @@ begin
                                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,
index 7375e8d216c324b40640f12580b789824ec6cf83..414d67dba4b9a75c627f3d9a0be5c29045c6966c 100644 (file)
@@ -52,9 +52,9 @@ port (
        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;
@@ -194,12 +194,12 @@ PS_RESPONSE_READY_OUT <= '1' when (dissect_current_state = LOAD) else '0';
 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);