diff --git a/lib/everest/slac/fsm/ev/include/everest/slac/fsm/ev/context.hpp b/lib/everest/slac/fsm/ev/include/everest/slac/fsm/ev/context.hpp index 75c0347028..9d88f314b4 100644 --- a/lib/everest/slac/fsm/ev/include/everest/slac/fsm/ev/context.hpp +++ b/lib/everest/slac/fsm/ev/include/everest/slac/fsm/ev/context.hpp @@ -63,6 +63,9 @@ struct Context { // MAC address of our PLC modem (EV side) uint8_t plc_mac[ETH_ALEN] = {0x00, 0xB0, 0x52, 0x00, 0x00, 0x01}; + // MAC address to use for SET KEY req + uint8_t plc_mac_chip_commands[ETH_ALEN] = {0x00, 0xB0, 0x52, 0x00, 0x00, 0x01}; + // event specific payloads // FIXME (aw): due to the synchroneous nature of the fsm, this could be even a ptr/ref slac::messages::HomeplugMessage slac_message; diff --git a/lib/everest/slac/fsm/ev/src/states/others.cpp b/lib/everest/slac/fsm/ev/src/states/others.cpp index 903b07f455..3c9e3bfba2 100644 --- a/lib/everest/slac/fsm/ev/src/states/others.cpp +++ b/lib/everest/slac/fsm/ev/src/states/others.cpp @@ -250,7 +250,7 @@ void JoinNetworkState::enter() { msg.new_eks = slac::defs::CM_SET_KEY_REQ_PEKS_NMK_KNOWN_TO_STA; memcpy(msg.new_key, nmk, sizeof(msg.new_key)); - ctx.send_slac_message(ctx.plc_mac, msg); + ctx.send_slac_message(ctx.plc_mac_chip_commands, msg); timeout = std::chrono::steady_clock::now() + std::chrono::milliseconds(SET_KEY_TIMEOUT_MS); } diff --git a/modules/EV/EvSlac/main/ev_slacImpl.cpp b/modules/EV/EvSlac/main/ev_slacImpl.cpp index ccb685ad0f..50a91a93e8 100644 --- a/modules/EV/EvSlac/main/ev_slacImpl.cpp +++ b/modules/EV/EvSlac/main/ev_slacImpl.cpp @@ -59,6 +59,10 @@ void ev_slacImpl::run() { callbacks.log_error = [](const std::string& text) { EVLOG_error << "EvSlac: " << text; }; auto fsm_ctx = slac::fsm::ev::Context(callbacks); + + // Copy correct MAC address + memcpy(fsm_ctx.plc_mac, slac_io.get_mac_addr(), sizeof(fsm_ctx.plc_mac)); + // fsm_ctx.slac_config.set_key_timeout_ms = config.set_key_timeout_ms; // fsm_ctx.slac_config.ac_mode_five_percent = config.ac_mode_five_percent; // fsm_ctx.slac_config.sounding_atten_adjustment = config.sounding_attenuation_adjustment;