[Xorp-cvs] XORP cvs commit: xorp/fea xorp/fea/data_plane/fibconfig xorp/fea/data_plane/ifconfig

Pavlin Radoslavov pavlin at icir.org
Thu May 8 15:46:38 PDT 2008


CVSROOT:	/usr/local/www/data/cvs
Module name:	xorp
Changes by:	pavlin at chum.icir.org	2008-05-08 22:46:38 UTC

XORP CVS repository


Modified files:
	fea           TODO fea_node.cc fibconfig.cc fibconfig.hh 
	              ifconfig.cc ifconfig.hh ifconfig_transaction.hh 
	              iftree.cc iftree.hh xrl_fea_target.cc 
	fea/data_plane/fibconfig fibconfig_entry_get_iphelper.cc 
	                         fibconfig_entry_get_netlink_socket.cc 
	                         fibconfig_entry_get_routing_socket.cc 
	                         fibconfig_entry_get_rtmv2.cc 
	                         fibconfig_entry_set_iphelper.cc 
	                         fibconfig_entry_set_netlink_socket.cc 
	                         fibconfig_entry_set_routing_socket.cc 
	                         fibconfig_entry_set_rtmv2.cc 
	                         fibconfig_table_get_iphelper.cc 
	                         fibconfig_table_get_netlink_socket.cc 
	                         fibconfig_table_get_sysctl.cc 
	                         fibconfig_table_observer_netlink_socket.cc 
	                         fibconfig_table_observer_routing_socket.cc 
	                         fibconfig_table_observer_rtmv2.cc 
	fea/data_plane/ifconfig ifconfig_get_dummy.cc 
	                        ifconfig_observer_netlink_socket.cc 
	                        ifconfig_observer_routing_socket.cc 
	                        ifconfig_set.cc ifconfig_set_click.cc 
	                        ifconfig_set_dummy.cc 
	                        ifconfig_set_ioctl.cc 
	                        ifconfig_set_netlink_socket.cc 

Log message:
	Refactor/fix the mechanism for configuring/updating the
	network interface information:
	
	* Reduced the number of IfTree copies kept by IfConfig:
	  - user_config_tree : contains the user configuration, and is
	    modified only by the user.
	  - system_config_tree : contains the currenty interface configuration
	    in the underlying system. It is modified when explicitly the
	    interface information is pulled from the system, or when
	    asynchronous upcalls are received from the kernel.
	  - merged_config_tree : contains the merged information from the
	    above two. E.g, it contains a subset of the interfaces/addresses
	    (only those that are configured by the user), but some of the
	    information is filled-in from the system config tree (e.g.,
	    the physical interface index, the NO-CARRIER status, etc).
	
	* Removed the "flipped" IfTree interface flag, because it adds
	  extra complexity. Typically, if the interface configuration plugin
	  has to explicitly disable and then enable an interface (e.g.,
	  on Linux when the MTU or MAC address is changed), this event
	  will be captured by the IfConfigObserver and propagated to
	  the registered protocols. Note that we must capture and
	  propagate that event because the Linux kernel will remove
	  all routes that point toward the interface that has been
	  disabled; a properly behaving protocol implementation should
	  capture the disable/enable interface event and then push
	  the routes that point to the affected interface.
	
	* Refactor/add new IfTree methods for proper merging of the user
	  and system configuration into the merged tree.
	
	The above changes fix a number of bugs that are related to
	the interface configuration: Bugzilla entry #196, #585, #633.
	
	Bugzilla URL:   http://bugzilla.xorp.org/bugzilla/show_bug.cgi?id=196
	Bugzilla URL:   http://bugzilla.xorp.org/bugzilla/show_bug.cgi?id=585
	Bugzilla URL:   http://bugzilla.xorp.org/bugzilla/show_bug.cgi?id=633

Revision  Changes                                   Path
1.36      +1 -12;  commitid: 144ed48237e6541a7;     xorp/fea/TODO
1.12      +3 -3;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_entry_get_iphelper.cc
1.18      +2 -2;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_entry_get_netlink_socket.cc
1.15      +3 -4;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_entry_get_routing_socket.cc
1.17      +3 -4;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_entry_get_rtmv2.cc
1.13      +3 -3;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_entry_set_iphelper.cc
1.18      +4 -4;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_entry_set_netlink_socket.cc
1.18      +4 -4;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_entry_set_routing_socket.cc
1.19      +4 -4;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_entry_set_rtmv2.cc
1.14      +2 -2;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_table_get_iphelper.cc
1.14      +2 -2;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_table_get_netlink_socket.cc
1.15      +2 -2;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_table_get_sysctl.cc
1.15      +3 -3;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_table_observer_netlink_socket.cc
1.15      +3 -3;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_table_observer_routing_socket.cc
1.16      +3 -3;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/fibconfig/fibconfig_table_observer_rtmv2.cc
1.11      +2 -2;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/ifconfig/ifconfig_get_dummy.cc
1.16      +12 -9;  commitid: 144ed48237e6541a7;     xorp/fea/data_plane/ifconfig/ifconfig_observer_netlink_socket.cc
1.15      +12 -9;  commitid: 144ed48237e6541a7;     xorp/fea/data_plane/ifconfig/ifconfig_observer_routing_socket.cc
1.22      +68 -71;  commitid: 144ed48237e6541a7;    xorp/fea/data_plane/ifconfig/ifconfig_set.cc
1.19      +3 -3;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/ifconfig/ifconfig_set_click.cc
1.17      +2 -2;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/ifconfig/ifconfig_set_dummy.cc
1.16      +1 -2;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/ifconfig/ifconfig_set_ioctl.cc
1.20      +1 -2;  commitid: 144ed48237e6541a7;      xorp/fea/data_plane/ifconfig/ifconfig_set_netlink_socket.cc
1.18      +6 -6;  commitid: 144ed48237e6541a7;      xorp/fea/fea_node.cc
1.19      +5 -5;  commitid: 144ed48237e6541a7;      xorp/fea/fibconfig.cc
1.19      +14 -13;  commitid: 144ed48237e6541a7;    xorp/fea/fibconfig.hh
1.83      +77 -137;  commitid: 144ed48237e6541a7;   xorp/fea/ifconfig.cc
1.79      +43 -55;  commitid: 144ed48237e6541a7;    xorp/fea/ifconfig.hh
1.20      +3 -3;  commitid: 144ed48237e6541a7;      xorp/fea/ifconfig_transaction.hh
1.60      +681 -138;  commitid: 144ed48237e6541a7;  xorp/fea/iftree.cc
1.63      +118 -38;  commitid: 144ed48237e6541a7;   xorp/fea/iftree.hh
1.44      +24 -24;  commitid: 144ed48237e6541a7;    xorp/fea/xrl_fea_target.cc



More information about the Xorp-cvs mailing list