[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