ospf_base.cc
来自「BCAST Implementation for NS2」· CC 代码 · 共 2,179 行 · 第 1/5 页
CC
2,179 行
} return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_delete_area(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1) handling ospf/0.1/delete_area", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = ospf_0_1_delete_area( xa_inputs.get_uint32("area_id")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/delete_area failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_query_area(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){ if (xa_inputs.size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1) handling ospf/0.1/query_area", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ bool is_stub; uint32_t default_cost; bool import_summary_routes; try { XrlCmdError e = ospf_0_1_query_area( xa_inputs.get_uint32("area_id"), is_stub, default_cost, import_summary_routes); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/query_area failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } /* Marshall return values */ try { pxa_outputs->add("is_stub", is_stub); pxa_outputs->add("default_cost", default_cost); pxa_outputs->add("import_summary_routes", import_summary_routes); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_list_area_ids(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){ if (xa_inputs.size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0) handling ospf/0.1/list_area_ids", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ XrlAtomList area_ids; try { XrlCmdError e = ospf_0_1_list_area_ids( area_ids); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/list_area_ids failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } /* Marshall return values */ try { pxa_outputs->add("area_ids", area_ids); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_add_or_configure_aggregate(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 4) { XLOG_ERROR("Wrong number of arguments (%u != 4) handling ospf/0.1/add_or_configure_aggregate", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = ospf_0_1_add_or_configure_aggregate( xa_inputs.get_uint32("area_id"), xa_inputs.get_ipv4("network"), xa_inputs.get_ipv4("netmask"), xa_inputs.get_bool("suppress_advertisement")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/add_or_configure_aggregate failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_delete_aggregate(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 3) { XLOG_ERROR("Wrong number of arguments (%u != 3) handling ospf/0.1/delete_aggregate", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = ospf_0_1_delete_aggregate( xa_inputs.get_uint32("area_id"), xa_inputs.get_ipv4("network"), xa_inputs.get_ipv4("netmask")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/delete_aggregate failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_query_aggregate(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){ if (xa_inputs.size() != 3) { XLOG_ERROR("Wrong number of arguments (%u != 3) handling ospf/0.1/query_aggregate", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ bool suppress_advertisement; try { XrlCmdError e = ospf_0_1_query_aggregate( xa_inputs.get_uint32("area_id"), xa_inputs.get_ipv4("network"), xa_inputs.get_ipv4("netmask"), suppress_advertisement); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/query_aggregate failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } /* Marshall return values */ try { pxa_outputs->add("suppress_advertisement", suppress_advertisement); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_list_aggregates(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){ if (xa_inputs.size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1) handling ospf/0.1/list_aggregates", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ XrlAtomList networks; XrlAtomList netmasks; try { XrlCmdError e = ospf_0_1_list_aggregates( xa_inputs.get_uint32("area_id"), networks, netmasks); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/list_aggregates failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } /* Marshall return values */ try { pxa_outputs->add("networks", networks); pxa_outputs->add("netmasks", netmasks); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_add_or_configure_host(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 4) { XLOG_ERROR("Wrong number of arguments (%u != 4) handling ospf/0.1/add_or_configure_host", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = ospf_0_1_add_or_configure_host( xa_inputs.get_ipv4("network"), xa_inputs.get_ipv4("netmask"), xa_inputs.get_uint32("area_id"), xa_inputs.get_uint32("cost")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/add_or_configure_host failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_delete_host(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 3) { XLOG_ERROR("Wrong number of arguments (%u != 3) handling ospf/0.1/delete_host", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = ospf_0_1_delete_host( xa_inputs.get_ipv4("network"), xa_inputs.get_ipv4("netmask"), xa_inputs.get_uint32("area_id")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/delete_host failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_query_host(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){ if (xa_inputs.size() != 3) { XLOG_ERROR("Wrong number of arguments (%u != 3) handling ospf/0.1/query_host", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ uint32_t cost; try { XrlCmdError e = ospf_0_1_query_host( xa_inputs.get_ipv4("network"), xa_inputs.get_ipv4("netmask"), xa_inputs.get_uint32("area_id"), cost); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/query_host failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } /* Marshall return values */ try { pxa_outputs->add("cost", cost); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_list_hosts(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){ if (xa_inputs.size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1) handling ospf/0.1/list_hosts", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ XrlAtomList networks; XrlAtomList netmasks; try { XrlCmdError e = ospf_0_1_list_hosts( xa_inputs.get_uint32("area_id"), networks, netmasks); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/list_hosts failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } /* Marshall return values */ try { pxa_outputs->add("networks", networks); pxa_outputs->add("netmasks", netmasks); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_add_vlink(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 2) { XLOG_ERROR("Wrong number of arguments (%u != 2) handling ospf/0.1/add_vlink", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = ospf_0_1_add_vlink( xa_inputs.get_uint32("transit_area"), xa_inputs.get_uint32("neighbor_id")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/add_vlink failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlOspfTargetBase::handle_ospf_0_1_delete_vlink(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 2) { XLOG_ERROR("Wrong number of arguments (%u != 2) handling ospf/0.1/delete_vlink", (uint32_t)xa_inputs.size()); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = ospf_0_1_delete_vlink( xa_inputs.get_uint32("transit_area"), xa_inputs.get_uint32("neighbor_id")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for ospf/0.1/delete_vlink failed: %s", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS();
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?