diff options
author | imarom <imarom@cisco.com> | 2016-09-08 13:59:27 +0300 |
---|---|---|
committer | imarom <imarom@cisco.com> | 2016-09-08 14:09:01 +0300 |
commit | b87818b8fdb3a73cd5a6247eacada460b57392ff (patch) | |
tree | 1c6db4a26c51cfdc0c5df9fca216c03090bd1d29 /src/stateless/dp/trex_stateless_dp_core.cpp | |
parent | 2261b2337b055e516c0ecf331c49eee8a002b5f0 (diff) |
dual mode fix: MAC address on the slave port was not updated
Diffstat (limited to 'src/stateless/dp/trex_stateless_dp_core.cpp')
-rw-r--r-- | src/stateless/dp/trex_stateless_dp_core.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/stateless/dp/trex_stateless_dp_core.cpp b/src/stateless/dp/trex_stateless_dp_core.cpp index 53e9bbf4..bea52d42 100644 --- a/src/stateless/dp/trex_stateless_dp_core.cpp +++ b/src/stateless/dp/trex_stateless_dp_core.cpp @@ -492,13 +492,19 @@ bool TrexStatelessDpPerPort::push_pcap(uint8_t port_id, pkt_dir_t dir = m_core->m_node_gen.m_v_if->port_id_to_dir(port_id); socket_id_t socket_id = m_core->m_node_gen.m_socket_id; + /* main port */ uint8_t mac_addr[12]; m_core->m_node_gen.m_v_if->update_mac_addr_from_global_cfg(dir, mac_addr); + /* for dual */ + uint8_t slave_mac_addr[12]; + m_core->m_node_gen.m_v_if->update_mac_addr_from_global_cfg(dir ^ 0x1, slave_mac_addr); + bool rc = pcap_node->create(port_id, dir, socket_id, mac_addr, + slave_mac_addr, pcap_filename, ipg_usec, speedup, @@ -1253,6 +1259,7 @@ bool CGenNodePCAP::create(uint8_t port_id, pkt_dir_t dir, socket_id_t socket_id, const uint8_t *mac_addr, + const uint8_t *slave_mac_addr, const std::string &pcap_filename, double ipg_usec, double speedup, @@ -1266,6 +1273,7 @@ bool CGenNodePCAP::create(uint8_t port_id, m_port_id = port_id; m_count = count; m_is_dual = is_dual; + m_dir = dir; /* mark this node as slow path */ set_slow_path(true); @@ -1282,9 +1290,9 @@ bool CGenNodePCAP::create(uint8_t port_id, /* copy MAC addr info */ memcpy(m_mac_addr, mac_addr, 12); + memcpy(m_slave_mac_addr, slave_mac_addr, 12); + - /* set the dir */ - set_mbuf_dir(dir); set_socket_id(socket_id); /* create the PCAP reader */ @@ -1300,8 +1308,13 @@ bool CGenNodePCAP::create(uint8_t port_id, return (false); } + /* set the dir */ + set_mbuf_dir(dir); + + /* update the direction (for dual mode) */ + update_pkt_dir(); + /* this is the reference time */ - //m_base_time = m_raw_packet->get_time(); m_last_pkt_time = m_raw_packet->get_time(); /* ready */ |