[Xorp-hackers] [PATCH 2/2] xorp: fea: data_plane: ifconfig: Fix checking if interface can have broadcast(destination) address

igorm at etf.rs igorm at etf.rs
Fri Mar 23 09:03:40 PDT 2012


From: Igor Maravic <igorm at etf.rs>


Signed-off-by: Igor Maravic <igorm at etf.rs>
---
 xorp/fea/data_plane/ifconfig/ifconfig_set.cc |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/xorp/fea/data_plane/ifconfig/ifconfig_set.cc b/xorp/fea/data_plane/ifconfig/ifconfig_set.cc
index 75013da..98fc505 100644
--- a/xorp/fea/data_plane/ifconfig/ifconfig_set.cc
+++ b/xorp/fea/data_plane/ifconfig/ifconfig_set.cc
@@ -596,14 +596,14 @@ IfConfigSet::push_vif_address(const IfTreeInterface*	system_ifp,
     }
 
     if (system_vifp != NULL) {
-	if (system_vifp->point_to_point() != config_addr.point_to_point()) {
-	    error_msg = c_format("Can't set destination address for if: %s vif: %s"
+	if (!system_vifp->point_to_point() && config_addr.point_to_point()) {
+	    error_msg = c_format("Can't set destination address for if: %s vif: %s\n"
 		    "because it isn't point-to-point interface\n",
 		    system_ifp->ifname().c_str(), system_vifp->vifname().c_str());
 	    goto done;
 	}
-	if (system_vifp->broadcast() != config_addr.broadcast()) {
-	    error_msg = c_format("Can't set broadcast address for if: %s vif: %s"
+	if (!system_vifp->broadcast() && config_addr.broadcast()) {
+	    error_msg = c_format("Can't set broadcast address for if: %s vif: %s\n"
 		    "because it isn't broadcast capable\n",
 		    system_ifp->ifname().c_str(), system_vifp->vifname().c_str());
 	    goto done;
@@ -707,8 +707,8 @@ IfConfigSet::push_vif_address(const IfTreeInterface*	system_ifp,
     }
 
     if (system_vifp != NULL) {
-	if (system_vifp->point_to_point() != config_addr.point_to_point()) {
-	    error_msg = c_format("Can't set destination address for if: %s vif: %s"
+	if (!system_vifp->point_to_point() && config_addr.point_to_point()) {
+	    error_msg = c_format("Can't set destination address for if: %s vif: %s\n"
 		    "because it isn't point-to-point interface\n",
 		    system_ifp->ifname().c_str(), system_vifp->vifname().c_str());
 	    goto done;
-- 
1.7.5.4



More information about the Xorp-hackers mailing list