/* $XORP: xorp/xrl/interfaces/fea_click.xif,v 1.5 2007/07/11 22:18:18 pavlin Exp $ */

#include <xorp_config.h>

#ifdef XORP_USE_CLICK

/*
 * Click FEA XRL interface.
 */


interface fea_click/0.1 {
	/**
	 * Load Click FEA support.
	 */
	load_click;

	/**
	 * Unload Click FEA support.
	 */
	unload_click;

	/**
	 * Enable/disable Click FEA support.
	 *
	 * @param enable if true, then enable the Click FEA support,
	 * otherwise disable it.
	 */
	enable_click	? enable:bool;

	/**
	 * Start Click FEA support.
	 */
	start_click;

	/**
	 * Stop Click FEA support.
	 */
	stop_click;

	/**
	 * Enable/disable duplicating the Click routes to the system kernel.
	 *
	 * @param enable if true, then enable duplicating the Click routes
	 * to the system kernel, otherwise disable it.
	 */
	enable_duplicate_routes_to_kernel		? enable:bool;

	/**
	 * Enable/disable kernel-level Click FEA support.
	 *
	 * @param enable if true, then enable the kernel-level Click FEA
	 * support, otherwise disable it.
	 */
	enable_kernel_click			? enable:bool;

	/**
	 * Enable/disable installing kernel-level Click on startup.
	 *
	 * @param enable if true, then install kernel-level Click on startup.
	 */
	enable_kernel_click_install_on_startup	? enable:bool;

	/**
	 * Specify the list of kernel Click modules to load on startup
	 * if installing kernel-level Click on startup is enabled.
	 * The file names of the kernel modules are separated by colon.
	 *
	 * @param modules the list of kernel Click modules (separated by
	 * colon) to load.
	 */
	set_kernel_click_modules		? modules:txt;

	/**
	 * Specify the kernel-level Click mount directory.
	 *
	 * @param directory the kernel-level Click mount directory.
	 */
	set_kernel_click_mount_directory	? directory:txt;

	/**
	 * Specify the external program to generate the kernel-level Click
	 * configuration.
	 *
	 * @param kernel_click_config_generator_file the name of the external
	 * program to generate the kernel-level Click configuration.
	 */
	set_kernel_click_config_generator_file	? kernel_click_config_generator_file:txt;

	/**
	 * Enable/disable user-level Click FEA support.
	 *
	 * @param enable if true, then enable the user-level Click FEA
	 * support, otherwise disable it.
	 */
	enable_user_click			? enable:bool;

	/**
	 * Specify the user-level Click command file.
	 *
	 * @param user_click_command_file the name of the user-level Click
	 * command file.
	 */
	set_user_click_command_file	? user_click_command_file:txt;

	/**
	 * Specify the extra arguments to the user-level Click command.
	 *
	 * @param user_click_command_extra_arguments the extra arguments
	 * to the user-level Click command.
	 */
	set_user_click_command_extra_arguments		?		\
					 user_click_command_extra_arguments:txt;

	/**
	 * Specify whether to execute on startup the user-level Click command.
	 *
	 * @param user_click_command_execute_on_startup if true, then execute
	 * the user-level Click command on startup.
	 */
	set_user_click_command_execute_on_startup	?		\
				 user_click_command_execute_on_startup:bool;

	/**
	 * Specify the address to use for control access to the
	 * user-level Click.
	 *
	 * @param user_click_control_address the address to use for
	 * control access to the user-level Click.
	 */
	set_user_click_control_address			?		\
				 user_click_control_address:ipv4;

	/**
	 * Specify the socket port to use for control access to the
	 * user-level Click.
	 *
	 * @param user_click_control_socket_port the socket port to use for
	 * control access to the user-level Click.
	 */
	set_user_click_control_socket_port		?		\
				 user_click_control_socket_port:u32;

	/**
	 * Specify the configuration file to be used by user-level Click
	 * on startup.
	 *
	 * @param user_click_startup_config_file the name of the
	 * configuration file to be used by user-level Click on startup.
	 */
	set_user_click_startup_config_file		?		\
				user_click_startup_config_file:txt;

	/**
	 * Specify the external program to generate the user-level Click
	 * configuration.
	 *
	 * @param user_click_config_generator_file the name of the external
	 * program to generate the user-level Click configuration.
	 */
	set_user_click_config_generator_file	? user_click_config_generator_file:txt;
}

#endif //click
