summaryrefslogtreecommitdiffstats
path: root/src/bp_sim.cpp
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2016-06-29 15:39:46 +0300
committerimarom <imarom@cisco.com>2016-07-03 13:40:21 +0300
commit4242bc5ec3aa8816db9bdd57bd1f732da4305555 (patch)
tree333271e4c8977eae545a2d4652ec9ad392124a2a /src/bp_sim.cpp
parent1dfd42ceb79677e171d5dedcac34900776574000 (diff)
client configuration: refactoring
Diffstat (limited to 'src/bp_sim.cpp')
-rwxr-xr-xsrc/bp_sim.cpp24
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());
+ }
+
+
}