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 + -
显示快捷键?