|
|
Base class for pushing and pulling interface configurations down to the particular platform.
IfConfig (EventLoop& eventloop, IfConfigUpdateReporterBase& ur,
IfConfigErrorReporterBase& er,
NexthopPortMapper& nexthop_port_mapper)
| IfConfig |
Constructor.
Parameters:
eventloop | the event loop. |
ur | update reporter that receives updates through when configurations are pushed down and when triggered spontaneously on the underlying platform. |
er | error reporter that errors are propagated through when configurations are pushed down. |
nexthop_port_mapper | the next-hop port mapper. |
~IfConfig ()
| ~IfConfig |
[virtual]
Virtual destructor (in case this class is used as base class).
EventLoop& eventloop ()
| eventloop |
Get a reference to the EventLoop instance.
Returns: a reference to the EventLoop instance.
NexthopPortMapper& nexthop_port_mapper ()
| nexthop_port_mapper |
Get a reference to the NexthopPortMapper instance.
Returns: a reference to the NexthopPortMapper instance.
inline IfConfigErrorReporterBase& er ()
| er |
Get error reporter associated with IfConfig.
IfTree& live_config ()
| live_config |
void set_live_config (const IfTree& it)
| set_live_config |
const IfTree& pulled_config ()
| pulled_config |
IfTree& pushed_config ()
| pushed_config |
int register_ifc_get_primary (IfConfigGet *ifc_get)
| register_ifc_get_primary |
int register_ifc_set_primary (IfConfigSet *ifc_set)
| register_ifc_set_primary |
int register_ifc_observer_primary (IfConfigObserver *ifc_observer)
| register_ifc_observer_primary |
int register_ifc_get_secondary (IfConfigGet *ifc_get)
| register_ifc_get_secondary |
int register_ifc_set_secondary (IfConfigSet *ifc_set)
| register_ifc_set_secondary |
int register_ifc_observer_secondary (IfConfigObserver *ifc_observer)
| register_ifc_observer_secondary |
IfConfigGet& ifc_get_primary ()
| ifc_get_primary |
IfConfigSet& ifc_set_primary ()
| ifc_set_primary |
IfConfigObserver& ifc_observer_primary ()
| ifc_observer_primary |
IfConfigGet& ifc_get_ioctl ()
| ifc_get_ioctl |
IfConfigSetClick& ifc_set_click ()
| ifc_set_click |
int set_dummy ()
| set_dummy |
Setup the unit to behave as dummy (for testing purpose).
Returns: XORP_OK on success, otherwise XORP_ERROR.
bool is_dummy ()
| is_dummy |
[const]
Test if running in dummy mode.
Returns: true if running in dummy mode, otherwise false.
int start (string& error_msg)
| start |
Start operation.
Parameters:
error_msg | the error message (if error). |
Returns: XORP_OK on success, otherwise XORP_ERROR.
int stop (string& error_msg)
| stop |
Stop operation.
Parameters:
error_msg | the error message (if error). |
Returns: XORP_OK on success, otherwise XORP_ERROR.
bool have_ipv4 ()
| have_ipv4 |
[const]
Return true if the underlying system supports IPv4.
Returns: true if the underlying system supports IPv4, otherwise false.
bool have_ipv6 ()
| have_ipv6 |
[const]
Return true if the underlying system supports IPv6.
Returns: true if the underlying system supports IPv6, otherwise false.
bool test_have_ipv4 ()
| test_have_ipv4 |
[const]
Test if the underlying system supports IPv4.
Returns: true if the underlying system supports IPv4, otherwise false.
bool test_have_ipv6 ()
| test_have_ipv6 |
[const]
Test if the underlying system supports IPv6.
Returns: true if the underlying system supports IPv6, otherwise false.
void enable_click (bool enable)
| enable_click |
Enable/disable Click support.
Parameters:
enable | if true, then enable Click support, otherwise disable it. |
int start_click (string& error_msg)
| start_click |
Start Click support.
Parameters:
error_msg | the error message (if error). |
Returns: XORP_OK on success, otherwise XORP_ERROR.
int stop_click (string& error_msg)
| stop_click |
Stop Click support.
Parameters:
error_msg | the error message (if error). |
Returns: XORP_OK on success, otherwise XORP_ERROR.
void set_kernel_click_config_generator_file (const string& v)
| set_kernel_click_config_generator_file |
Specify the external program to generate the kernel-level Click configuration.
Parameters:
v | the name of the external program to generate the kernel-level Click configuration. |
void enable_kernel_click (bool enable)
| enable_kernel_click |
Enable/disable kernel-level Click support.
Parameters:
enable | if true, then enable the kernel-level Click support, otherwise disable it. |
void enable_kernel_click_install_on_startup (bool enable)
| enable_kernel_click_install_on_startup |
Enable/disable installing kernel-level Click on startup.
Parameters:
enable | if true, then install kernel-level Click on startup. |
void set_kernel_click_modules (const list<string>& modules)
| set_kernel_click_modules |
Specify the list of kernel Click modules to load on startup if installing kernel-level Click on startup is enabled.
Parameters:
modules | the list of kernel Click modules to load. |
void set_kernel_click_mount_directory (const string& directory)
| set_kernel_click_mount_directory |
Specify the kernel-level Click mount directory.
Parameters:
directory | the kernel-level Click mount directory. |
void enable_user_click (bool enable)
| enable_user_click |
Enable/disable user-level Click support.
Parameters:
enable | if true, then enable the user-level Click support, otherwise disable it. |
void set_user_click_command_file (const string& v)
| set_user_click_command_file |
Specify the user-level Click command file.
Parameters:
v | the name of the user-level Click command file. |
void set_user_click_command_extra_arguments (const string& v)
| set_user_click_command_extra_arguments |
Specify the extra arguments to the user-level Click command.
Parameters:
v | the extra arguments to the user-level Click command. |
void set_user_click_command_execute_on_startup (bool v)
| set_user_click_command_execute_on_startup |
Specify whether to execute on startup the user-level Click command.
Parameters:
v | if true, then execute the user-level Click command on startup. |
void set_user_click_control_address (const IPv4& v)
| set_user_click_control_address |
Specify the address to use for control access to the user-level Click.
Parameters:
v | the address to use for control access to the user-level Click. |
void set_user_click_control_socket_port (uint32_t v)
| set_user_click_control_socket_port |
Specify the socket port to use for control access to the user-level Click.
Parameters:
v | the socket port to use for control access to the user-level Click. |
void set_user_click_startup_config_file (const string& v)
| set_user_click_startup_config_file |
Specify the configuration file to be used by user-level Click on startup.
Parameters:
v | the name of the configuration file to be used by user-level Click on startup. |
void set_user_click_config_generator_file (const string& v)
| set_user_click_config_generator_file |
Specify the external program to generate the user-level Click configuration.
Parameters:
v | the name of the external program to generate the user-level Click configuration. |
bool push_config (IfTree& config)
| push_config |
Push IfTree structure down to platform. Errors are reported via the constructor supplied ErrorReporter instance.
Note that on return some of the interface tree configuration state may be modified.
Parameters:
config | the configuration to be pushed down. |
Returns: true on success, otherwise false.
const IfTree& pull_config ()
| pull_config |
Pull up current config from platform.
Returns: the platform IfTree.
void flush_config ()
| flush_config |
IfTreeInterface * get_if (IfTree& it, const string& ifname)
| get_if |
IfTreeVif * get_vif (IfTree& it, const string& ifname,
const string& vifname)
| get_vif |
const string& push_error ()
| push_error |
[const]
Get error message associated with push operation.
bool report_update (const IfTreeInterface& fi,
bool is_system_interfaces_reportee)
| report_update |
Check IfTreeInterface and report updates to IfConfigUpdateReporter.
Returns: true if there were updates to report, otherwise false.
bool report_update (const IfTreeInterface& fi, const IfTreeVif& fv,
bool is_system_interfaces_reportee)
| report_update |
Check IfTreeVif and report updates to IfConfigUpdateReporter.
Returns: true if there were updates to report, otherwise false.
bool report_update (const IfTreeInterface& fi,
const IfTreeVif& fv,
const IfTreeAddr4& fa,
bool is_system_interfaces_reportee)
| report_update |
Check IfTreeAddr4 and report updates to IfConfigUpdateReporter.
Returns: true if there were updates to report, otherwise false.
bool report_update (const IfTreeInterface& fi,
const IfTreeVif& fv,
const IfTreeAddr6& fa,
bool is_system_interfaces_reportee)
| report_update |
Check IfTreeAddr6 and report updates to IfConfigUpdateReporter.
Returns: true if there were updates to report, otherwise false.
void report_updates_completed (bool is_system_interfaces_reportee)
| report_updates_completed |
Report that updates were completed to IfConfigUpdateReporter.
void report_updates (const IfTree& it, bool is_system_interfaces_reportee)
| report_updates |
Check every item within IfTree and report updates to IfConfigUpdateReporter.
void map_ifindex (uint32_t if_index, const string& ifname)
| map_ifindex |
void unmap_ifindex (uint32_t if_index)
| unmap_ifindex |
const char* find_ifname (uint32_t if_index)
| find_ifname |
[const]
uint32_t find_ifindex (const string& ifname)
| find_ifindex |
[const]
const char* get_insert_ifname (uint32_t if_index)
| get_insert_ifname |
uint32_t get_insert_ifindex (const string& ifname)
| get_insert_ifindex |