diff options
author | imarom <imarom@cisco.com> | 2016-06-29 15:39:46 +0300 |
---|---|---|
committer | imarom <imarom@cisco.com> | 2016-07-03 13:40:21 +0300 |
commit | 4242bc5ec3aa8816db9bdd57bd1f732da4305555 (patch) | |
tree | 333271e4c8977eae545a2d4652ec9ad392124a2a /src/bp_sim.cpp | |
parent | 1dfd42ceb79677e171d5dedcac34900776574000 (diff) |
client configuration: refactoring
Diffstat (limited to 'src/bp_sim.cpp')
-rwxr-xr-x | src/bp_sim.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/bp_sim.cpp b/src/bp_sim.cpp index 2ebffb0d..95f9e2fa 100755 --- a/src/bp_sim.cpp +++ b/src/bp_sim.cpp @@ -5049,17 +5049,25 @@ void CErfIF::add_vlan(uint16_t vlan_id) { void CErfIF::apply_client_config(CGenNode *node, pkt_dir_t dir) { uint8_t *p =(uint8_t *)m_raw->raw; - uint16_t vlan_id; - if (dir == CLIENT_SIDE) { - memcpy(p, node->m_client_cfg->m_initiator.m_dst_mac, 6); - vlan_id = node->m_client_cfg->m_responder.m_vlan; - } else { - memcpy(p, node->m_client_cfg->m_responder.m_dst_mac, 6); - vlan_id = node->m_client_cfg->m_responder.m_vlan; + ClientCfgDir &cfg_dir = ( (dir == CLIENT_SIDE) ? node->m_client_cfg->m_initiator : node->m_client_cfg->m_responder); + + /* dst mac */ + if (cfg_dir.has_dst_mac_addr()) { + memcpy(p, cfg_dir.get_dst_mac_addr(), 6); + } + + /* src mac */ + if (cfg_dir.has_src_mac_addr()) { + memcpy(p + 6, cfg_dir.get_src_mac_addr(), 6); } - add_vlan(vlan_id); + /* VLAN */ + if (cfg_dir.has_vlan()) { + add_vlan(cfg_dir.get_vlan()); + } + + } |