# Create firewall DMZ This sample application demonstrates how to create firewall DMZ. 1. Implement initialization callback and get the DataFactory instances Optionally initialization callback can be provided with get manager instance. Data factory will call callback when manager initialization is complete. auto initCb = [&](telux::common::ServiceStatus status) { std::lock_guard lock(mtx); status_ = status; initCv.notify_all(); }; auto &dataFactory = telux::data::DataFactory::getInstance(); Copy to clipboard 2. Get the FirewallManager instances std::unique_lock lck(mtx); auto dataFwMgr = dataFactory.getFirewallManager(opType, initCb); Copy to clipboard 3. Wait for FirewallManager initialization to be complete initCv.wait(lck); Copy to clipboard 3.1 Check FirewallManager initialization state If FirewallManager initialization failed, new initialization attempt can be accomplished by calling step 2. If FirewallManager initialization succeed, proceed to step 4. if (status_ == telux::common::ServiceStatus::SERVICE_AVAILABLE) { // Go to step 4 } else { //Go to step 2 for another initialization attempt } Copy to clipboard 4. Implement a callback for create DMZ auto respCb = [](telux::common::ErrorCode error) { std::cout << std::endl << std::endl; std::cout << "CALLBACK: " << "addDmz Response" << (error == telux::common::ErrorCode::SUCCESS ? " is successful" : " failed"); }; Copy to clipboard 5. Create DMZ based on profile id and local ip address dataFwMgr->enableDmz(profileId,ipAddr, respCb); Copy to clipboard Now, response callback will be called for the addDmz response. Last Published: Jun 24, 2026 [Previous Topic Enable/Disable firewall](https://docs.qualcomm.com/bundle/publicresource/80-PF458-1/topics/enable_disable_firewall.md) [Next Topic Add Firewall Entry](https://docs.qualcomm.com/bundle/publicresource/80-PF458-1/topics/add_firewall_entry.md)