[Xorp-users] Config file error
Rae Harbird
r.harbird at cs.ucl.ac.uk
Fri Jul 3 10:17:27 PDT 2009
Hi
Does anyone know what kind of configuration file error might cause this
message or give me some hints about how to debug it? Please note: the rubi
module depends on olsr which starts up successfully beforehand.
[ 2009/07/03 18:03:28 ERROR xorp_rtrmgr:30310 RTRMGR +691
master_conf_tree.cc commit_pass2_done ] Commit failed: Can't validate config
ready of process rubi
[ 2009/07/03 18:03:28 ERROR xorp_rtrmgr:30310 RTRMGR +261
master_conf_tree.cc config_done ] Configuration failed: Can't validate
config ready of process rubi
I have included the config, template, tgt and xif files below.
Thanks
Rae
====
config file:
BEGIN ---->
interfaces {
interface eth1 {
description: "xorp data interface"
disable: false
default-system-config
}
}
fea {
unicast-forwarding4 {
disable: false
}
}
protocols {
rubi {
advertisement_interval: 120
resource_timeout: 1800
max_resources: 50
forwarder: 10.10.1.1
}
olsr4 {
main-address: 192.168.1.100
interface eth1 {
vif eth1 {
address 192.168.1.100 {
}
}
}
traceoptions {
flag all {
disable: false
}
}
}
}
END ---->
Here is the template file:
BEGIN ---->
protocols {
rubi {
targetname: txt = "rubi";
advertisement_interval: u32 = 120; /* two minutes */
resource_timeout: u32 = 1800; /* half an hour */
max_resources: u32 = 50;
my_resources: txt;
forwarder: ipv4;
proactive_routing: bool = true;
reactive_routing: bool = true;
/* Not yet ....
dns_entry {
name: txt;
ip_address: ipv4;
}
*/
}
}
protocols {
rubi {
%help: short "Distribute service information";
%modinfo: provides rubi;
%modinfo: depends olsr4;
%modinfo: path "contrib/rubi/xorp_rubi";
%modinfo: default_targetname "rubi";
%modinfo: status_method xrl
"$(rubi.targetname)/common/0.1/get_status->status:u32&reason:txt";
%modinfo: shutdown_method xrl
"$(rubi.targetname)/common/0.1/shutdown";
%mandatory: $(@.targetname);
targetname {
%user-hidden: "XRL target name";
%help: short "XRL target name";
%set:;
}
resource_timeout {
%help: short "A resource is valid for this period.";
%help: long "A resource is valid for this period, the resource
will expire after this if it is not refreshed.";
%set: xrl
"$(rubi.targetname)/rubi/0.1/set_resource_timeout?resource_timeout:u32=$(@)";
%get: xrl
"$(rubi.targetname)/rubi/0.1/get_resource_timeout->resource_timeout:u32";
}
max_resources {
%help: short "The maximum number of resource entries about which
this node will maintain information.";
%set: xrl
"$(rubi.targetname)/rubi/0.1/set_max_resources?max_resources:u32=$(@)";
%get: xrl
"$(rubi.targetname)/rubi/0.1/get_max_resources->max_resources:u32";
}
my_resources {
%help: short "The URL for a resource belonging to this node.";
%set: xrl
"$(rubi.targetname)/rubi/0.1/set_my_resource?my_resource:txt=$(@)";
%get: xrl
"$(rubi.targetname)/rubi/0.1/get_my_resources?resource_url:txt->my_resources:list";
%delete: xrl
"$(rubi.targetname)/rubi/0.1/delete_my_resource?my_resource:txt=$(@)";
%list: xrl
"$(rubi.targetname)/rubi/0.1/list_my_resources->resources:list";
}
/* Not yet ...
domain_name {
%help: short "A domain name and ip address tuple.";
%set: xrl
"$(rubi.targetname)/rubi/0.1/set_dns_entry?dns_entry?name:txt=$(@)?ip_address:ipv4=$(@)";
%get: xrl
"$(rubi.targetname)/rubi/0.1/get_dns_entry->dns_entry?name:txt=$(@)?ip_address:ipv4=$(@)";
%delete: xrl
"$(rubi.targetname)/rubi/0.1/delete_dns_entry->dns_entry?name:txt=$(@)?ip_address:ipv4=$(@)";
%list: xrl
"$(rubi.targetname)/rubi/0.1/list_domain_names->domain_names:list";
}
*/
forwarder {
%help: short "The IP address for a node willing to act as a
forwarder.";
%set: xrl
"$(rubi.targetname)/rubi/0.1/set_forwarder?ip_address:ipv4=$(@)";
%delete: xrl
"$(rubi.targetname)/rubi/0.1/delete_forwarder?in_ip_address:ipv4=$(@)";
%list: xrl
"$(rubi.targetname)/rubi/0.1/list_forwarders->forwarders:list";
}
advertisement_interval {
%help: short "Resource information is advertised at this
interval";
%set: xrl
"$(rubi.targetname)/rubi/0.1/set_advertisement_interval?interval:u32=$(@)";
%get: xrl
"$(rubi.targetname)/rubi/0.1/get_advertisement_interval->interval:u32";
}
proactive_routing {
%help: short "Flag indicating whether or not the node is
operating in proactive mode";
%set: xrl
"$(rubi.targetname)/rubi/0.1/set_proactive_routing_mode?enabled:bool=$(@)";
%get: xrl
"$(rubi.targetname)/rubi/0.1/get_proactive_routing_mode->enabled:bool";
}
reactive_routing {
%help: short "Flag indicating whether or not the node is
operating in reactive mode";
%set: xrl
"$(rubi.targetname)/rubi/0.1/set_reactive_routing_mode?enabled:bool=$(@)";
%get: xrl
"$(rubi.targetname)/rubi/0.1/get_reactive_routing_mode->enabled:bool";
}
/* main_addr {
%help: short "The main IP address for the node.";
%set: xrl
"$(rubi.targetname)/rubi/0.1/set_main_address?ip_address:ipv4=$(@)";
%get: xrl
"$(rubi.targetname)/rubi/0.1/get_main_address->ip_address:ipv4";
}*/
}
}
END ---->
And here is the xif file:
BEGIN ---->
/*
** RUBI v1 -- protocol XRL interface.
*/
interface rubi/0.1 {
/*
* Protocol variables.
*/
/**
* Set the max number of resource entries.
*
* @param max_resources the maximum number of resources that the node
can
* hold information about.
*/
set_max_resources ? max_resources:u32
/**
* Get the max number of resources entries.
*
* @param max_resources the maximum number of resources that the node
can
* hold information about.
*/
get_max_resources -> max_resources:u32
/*
* RUBI process commands.
*/
/**
* Clear service directory database.
*/
clear_database
/*
* RUBI Global protocol timers.
*/
/**
* Set the SERVICE_TIMEOUT.
*
* @param interval the new SERVICE_TIMEOUT.
*/
set_resource_timeout ? resource_timeout:u32
/**
* Get the SERVICE_TIMEOUT.
*/
get_resource_timeout -> resource_timeout:u32
/**
* Set the ADVERTISEMENT_INTERVAL.
*
* @param interval the new ADVERTISEMENT_INTERVAL.
*/
set_advertisement_interval ? interval:u32
/**
* Get the ADVERTISEMENT_INTERVAL.
*/
get_advertisement_interval -> interval:u32
/*
* RUBI resources database state.
*/
/**
* Get the list of resources owned and advertised by a node (my
resources).
*
* Return a list of text values. Each value is a service URL that
* can be advertised by the node.
*/
list_my_resources -> resources:list
/**
* Add a resource to the list of my resources that can be
* advertised.
*
*/
set_my_resource ? my_resource:txt
/**
* Find resources which match those in the list of my resources
*
*/
get_my_resources ? resource_url:txt \
-> my_resources:list
/**
* Clear the list of my resources
*
**/
clear_my_resources
/**
* Delete a resource to the list of my resources
*
*/
delete_my_resource ? my_resource:txt
/**
* Add a DNS entry
*/
set_dns_entry ? name:txt \
& ip_address:ipv4
/**
* Get a DNS entry
*/
get_dns_entry ? name:txt \
-> ip_address:ipv4
/**
* Delete a DNS entry
*/
delete_dns_entry ? name:txt
/**
* Get the list of dns entries owned and advertised by a node (my
services).
* Return a list of text values. Each value is a resource URL that can
be
* advertised by the node.
*/
list_dns_entries -> dns_entries:list
/**
* Add a forwarder
*/
set_forwarder ? ip_address:ipv4
/**
* Get forwarder
*/
get_forwarder ? in_ip_address:ipv4 \
-> forwarder_ip_address:ipv4
/**
* Delete forwarder
*/
delete_forwarder ? in_ip_address:ipv4
/**
* List forwarders
*/
list_forwarders -> forwarders:list
/**
* Add a resource to the list of learned resources.
*/
set_learned_resource ? ip_address:ipv4 \
& resource_url:txt
/**
* Get the list of services which match a particular service name.
*
* Return a list of text values. Each value is a service URL.
*/
get_learned_resources ? resource_url:txt \
-> \
resources:list
/**
* Get the list of learned resources
*
* Return a list of text values. Each value is a resource URL.
*/
list_learned_resources -> resources:list
/**
* Delete a resource from the list of learned resources.
*/
delete_learned_resource ? ip_address:ipv4 \
& resource_url:txt
/**
* Clear the list of learned resources.
*/
clear_learned_resources
/**
* Set the routing mode which this node will use.
* For the timebeing, a node may use either proactive or reactive
* routing or both.
*/
set_proactive_routing_mode ? enabled:bool
get_proactive_routing_mode -> enabled:bool
set_reactive_routing_mode ? enabled:bool
get_reactive_routing_mode -> enabled:bool
/**
* Receive an external message from a xorp module and parse it.
*
* @param external_message the message that must be parsed
*
*/
process_message ? message_body:binary
/**
* Set/get the main address for the Rubi node. This is used in messages
to represent the source.
*/
set_main_address ? ip_address:ipv4
get_main_address -> ip_address:ipv4
}
END ---->
rubi.tgt
BEGIN ---->
#include "../interfaces/common.xif"
#include "../interfaces/rubi.xif"
target rubi implements common/0.1, \
rubi/0.1
END ---->
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ICSI.Berkeley.EDU/pipermail/xorp-users/attachments/20090703/e0c53cd9/attachment-0001.html
More information about the Xorp-users
mailing list