summaryrefslogtreecommitdiffstats
path: root/src/main_dpdk.cpp
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2016-12-25 12:54:09 +0200
committerimarom <imarom@cisco.com>2016-12-25 13:50:56 +0200
commit34cb66c9f06c7a43e68a17b4a8802f8d34298a65 (patch)
treeaa6b081213e5715cf09a18503cc7b0a20168c6fc /src/main_dpdk.cpp
parent549f2750ab22db5695a8d29575c136ab06e37235 (diff)
refactor layer config on prot attributes
added guard against unconfigured MAC when going up with empty config file Signed-off-by: imarom <imarom@cisco.com>
Diffstat (limited to 'src/main_dpdk.cpp')
-rw-r--r--src/main_dpdk.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/main_dpdk.cpp b/src/main_dpdk.cpp
index ffeec82a..95ab22b1 100644
--- a/src/main_dpdk.cpp
+++ b/src/main_dpdk.cpp
@@ -1762,7 +1762,7 @@ bool DpdkTRexPortAttr::update_link_status_nowait(){
/* in case of link status change - notify the dest object */
if (new_link.link_status != m_link.link_status) {
- get_dest().on_link_down();
+ on_link_down();
}
}
@@ -3407,8 +3407,8 @@ void CGlobalTRex::pre_test() {
m_trex_stateless->get_port_by_id(port_id)->set_l3_mode(src_ipv4, dg, dst_mac);
}
- /* L2 mode */
- } else {
+ /* L2 mode */
+ } else if (CGlobalInfo::m_options.m_mac_addr[port_id].u.m_mac.is_set) {
m_trex_stateless->get_port_by_id(port_id)->set_l2_mode(dst_mac);
}
}
@@ -4041,7 +4041,7 @@ void CGlobalTRex::dump_links_status(FILE *fd){
bool CGlobalTRex::lookup_port_by_mac(const uint8_t *mac, uint8_t &port_id) {
for (int i = 0; i < m_max_ports; i++) {
- if (memcmp(m_ports[i].get_port_attr()->get_src_mac(), mac, 6) == 0) {
+ if (memcmp(m_ports[i].get_port_attr()->get_layer_cfg().get_ether().get_src(), mac, 6) == 0) {
port_id = i;
return true;
}
@@ -5364,6 +5364,8 @@ int update_global_info_from_platform_file(){
for (i=0; i<port_size; i++){
cg->m_mac_info[i].copy_src(( char *)CGlobalInfo::m_options.m_mac_addr[i].u.m_mac.src) ;
cg->m_mac_info[i].copy_dest(( char *)CGlobalInfo::m_options.m_mac_addr[i].u.m_mac.dest) ;
+ CGlobalInfo::m_options.m_mac_addr[i].u.m_mac.is_set = 1;
+
CGlobalInfo::m_options.m_ip_cfg[i].set_def_gw(cg->m_mac_info[i].get_def_gw());
CGlobalInfo::m_options.m_ip_cfg[i].set_ip(cg->m_mac_info[i].get_ip());
CGlobalInfo::m_options.m_ip_cfg[i].set_mask(cg->m_mac_info[i].get_mask());
@@ -7441,7 +7443,7 @@ int DpdkTRexPortAttr::set_rx_filter_mode(rx_filter_mode_e rx_filter_mode) {
bool DpdkTRexPortAttr::is_loopback() const {
uint8_t port_id;
- return g_trex.lookup_port_by_mac(m_dest.get_dest_mac(), port_id);
+ return g_trex.lookup_port_by_mac(m_layer_cfg.get_ether().get_dst(), port_id);
}
/**