IRRToolSet(1)

NAME
irrtoolset-errors - IRRToolSet error and warning messages

DESCRIPTION

The goal of this document is to clarify the possible errors you may encounter when using IRRToolSet. Some of these errors are listed on the manual pages for the tools. If you didn't find the error on the manual page of the tool you were using, please refer to this page. Some errors with obvious explanation are listed here for reference, but to not have any documentation. Still, if description is unclear or unsufficient, please report to irrtoolset@lists.isc.org.

IRR communication errors

Command errors

Error: unknown irr protocol <protocol>, using irrd
known protocols: irrd(rawhoisd), ripe(bird)

    The protocol specified with "-protocol" option is unknown or not supported. Use one of the known protocols to connect to IRR server. This option is case-insensitive. This is important which protocol to use, because some client/server protocols are incompatible, and you can get wrong result. Check IRR server documentation and use the protocols which are compatible with it. Please note that there are 3 protocols supported, and the rest are aliases (rawhoisd is the same as irrd and bird is the same as ripe).

System errors

Error: gethostbyname (<hostname>) failed.

Error: socket() failed.

Error: connect() failed.

Error: fgets() failed.

Error: fread() failed.

Error: fwrite() failed.

Connection to <host><port> failed!

    There could be several reasons for this error: host is unreachable, or some packet filtering is on and you can't send the packets, or the server may be not responding. Check your network setup and host reachability.

Warning: setsockopt SO_KEEPALIVE failed!

    All protocols supported by IRRToolSet use a persistent connection to the IRR server. When the socket for IRR connection is created, the SO_KEEPALIVE option is set to enable a persistent connection (the client needs to check continually that the destination is still alive). See setsockopt(2) manual page for details about possible failures.

IRR-specific errors

Error: setting source to <sources> failed.

    One (or several) sources from <sources> list are not found on IRR server. If the source setting for IRR server failed, the source list will be default one. Check IRR server documentation for the proper command to get the list of all available sources and default sources. This check is only implemented for irrd(rawhoisd). If you mistyped the source name, re-run the program using "-s <sources>" option.

Error: current source setting is <sources>.

    This is rather informational message, preceeded by error message about failed sources setting. It shows the source list which is used currently by the program for querying. If you want to modify this list, use "-s <sources>" option.

Warning: irrd(rawhoisd) does not yet support rtr-set expansion.

    Although as-set and route-set expansion is an internal feature of irrd, rtr-set expansion is not implemented yet. In IRRToolSet it is done by external functions, but it still works. So you can safely ignore this warning, this is just a reminder to keep an eye on irrd development and update the code to use internal feature when it is implemented.

Warning: key not found error for query <last_query>

    Object not found in the database for specified sources. <last_query> specifies the actual query to the server which returned to objects. The reason can be:
    •   object, source or host name are mistyped and therefore object cannot be found;
    •   this is true error and you're referencing non-existent object, which is supposed to be in the database; check your objects and policy description.

Warning: no byte count error for query <last_query>.

    irrd server returns the length of the reply for successful queries with "A<reply length in bytes including newlines>". The program is expecting it if query is successful. If it is not received, the warning is issued. This error can also indicate protocol/server incompatibility (for example, RIPE whois server with irrd protocol). Please check IRR server documentation for details.

Warning: no end of data line error for query <last_query>.

    After a successful query irrd server issues special "end of data" command, "C". If it is not received after <length of reply> bytes of data, the program complains. This can indicate that query was broken, or incomplete, or some other server error occured. Please check IRR server documentation for details or ask IRR server administration for help.

RPSL parser errors
Lexer errors

Error: unknown class <yytext>

    Wrong first attribute of the object. This attribute is considered RPSL class name, and determines the object type. The rest of object's attributes can have any order, but the first one should be on the first place.

Error: unknown attribute <attr> of class <class>

    Wrong attribute of the object. The attribute is a string followed by ":" which describes the type of data after ":". Object consists of "attribute:value" pairs. For more information on RPSL classes, see RFC 2622.

Error: Non-ASCII character encountered

Error: unterminated string encountered

Error: octal escape sequence is out of bounds

Error: bad octal escape sequence

Warning: attribute <attr> of class <class> is now obsolete.

    This attribute is described in RPSL dictionary as valid RPSL attribute, but it is now obsoleted and should not be used any longer. See RFC 2622 for more information about RPSL attributes.

Parser errors

Error: syntax error

    String starts with non-attribute or object is incomplete.

Error: "changed: <email> <YYYYMMDD>" expected

    Wrong "changed" attribute. <email> is e-mail address in RFC 822 format, <YYYYMMDD> is a date.

Error: argument to <name> should match <match>

    Syntax for some RPSL attributes is defined by regular expressions. The error indicates that attribute's value didn't match the regular expression.

Error: argument to <name> should be <match>

    Generic RPSL attributes have fixed syntax, and exact match is expected.

Error: argument to <name> should be blob sequence.

    Indicates a syntax error in "auth" attribute specification.

Warning: unknown protocol <string>, BGP4 assumed.

    Unknown protocol specified in import/export policy. Defaults to BGP4. The known protocols are listed in RFC 2622, Dictionary section.

Error: from <peering> expected.

    Syntax error in "import" attribute specification. See RFC2622 for more details about "import" attribute syntax.

Error: to <peering> expected.

    Syntax error in "export" attribute specification. The syntax for "export" attribute is symmetrical for import, with changes: from->to, accept->announce. For more details see RFC2622.

Error: badly formed filter/action or keyword NETWORKS/ACTION missing.

    Syntax error in "default" attibute specification The syntax for "default" attribute is:
    default: to <peering> [action <action>]
    [networks <filter>]
    For more details see RFC2622.

Error: TO <peer> missing.

    Syntax error in "default" attribute specification. Please see "default" attribute syntax above.

Error: badly formed filter.

    Syntax error in RPSL filter specification. RPSL filter is an expression over AS-number, prefixes, AS-sets, range operators etc. When applying to a set of routes, it returns the resulting set of routes matched by this filter. There are several types of RPSL filters - prefix filters, AS_path filters, etc. For more details, see RFC2622.

Error: in action specification.

    Syntax error in action specification. "Action" keyword specifies the action to be executed if the route is matched by the filter. The general "action" syntax is:
    action <rp_attribute> <method> (<rp_method_arguments>);
    | action <rp_attribute> <operator> <argument>;
    For more details see RFC2622.

Error: integer mask length expected.

    The integer mask length is a number of bits taken by network number.

Error: MASKLEN <length> expected.

    Syntax error in "ifaddr" attribute specification. The syntax for "ifaddr" attribute is:
    ifaddr: <ipv4-address> masklen <integer> [action <action>]

Error: <ip_address> MASKLEN <length> [<action>] expected.

    Syntax error in "ifaddr" specification. See "ifaddr" attribute syntax above.

Error: unknown protocol <protocol>.

    Unknown protocol in peer specification. Known protocols are: BGP4 (default), OSPF, RIP, IGRP, IS-IS, STATIC, RIPng, DVMRP, PIM-DM, PIM-SM, CBT, MOSPF.

Error: protocol <protocol> does not have option <option>

    This option is not defined for this protocol in RPSL dictionary. For defined protocols and options, please see RPSL dictionary description in RFC2622.

Error: mandatory option <option> of protocol <protocol> is missing.

    The mandatory option for this protocol is missing. For defined protocols and options, please see RPSL dictionary description in RFC2622.

Error: in peer option.

    Syntax error in "peer" attribute. This attribute describes router's peering. The syntax is:
    <protocol> <ipv4-address> <options>
    | <protocol> <inet-rtr-name> <options>
    | <protocol> <rtr-set-name> <options>
    | <protocol> <peering-set-name> <options>
    Where:
    <protocol>
        is any of the protocols supported by RPSL dictionary, e.g. BGP4.
    <ipv4-address>
        is a valid IPv4 address in "dot" decimal notation, e.g. 1.1.1.1
    <inet-rtr-name>
        is a name of "inet-rtr" object, e.g fully qualified DNS name without trailing "." (RFC1034). It should not exceed 254 characters.
    <rtr-set-name>
        is a name of "rtr-set" object. Consists of letters, digits, the underscore "_" and hyphen "-". Starts with "rtrs-" prefix, and the last character of a name must be a letter or a digit.
    <peering-set-name>
        is a name of "peering-set" object.It has the same syntax as "rtr-set" object's name above, but its prefix should be "prng-".

Error: missing peer ip_address.

    Peer address is missing in peer specification.
    <ipv4-address> is a valid IPv4 address in "dot" decimal notation, e.g. 1.1.1.1

Error: missing protocol name.

    Protocol name is missing in peer specification. Protocol name should be a valid protocol defined in RPSL dictionary, e.g. BGP4 (see RFC2622).

Error: <as-expression> expected.

    Syntax error in "aggr-bndry" attribute of "route" object. The syntax is:
    <as-expression>. Where:
    <as-expression>
        is an expression over AS numbers and sets. It defines the list of ASes performing the aggregation. If this attribute is missing, the origin AS is the sole aggregation boundary. See RFC2622 for more detailed description of this attribute in "route" object.

Error: OUTBOUND <as-expression> expected.

    Syntax error in "aggr-mtd" attribute of "route" object. The syntax is:
    aggr-mtd: inbound
              | outbound [<as-expression>]
    Where:
    inbound, outbound
        RPSL keywords specifying the type of aggregation. See RFC2622 for more detailed description of this attribute of "route" object.
    <as-expression>
        is an expression over as-sets and as-numbers.
    See RFC2622 for more detailed description of this attribute of "route" object.

Error: INBOUND can not be followed by anything.

    Syntax error in "aggr-mtd" attribute of "route" object. See the details above.

Error: keyword INBOUND or OUTBOUND expected.

    Syntax error in "aggr-mtd" attribute of "route" object. See the details above.

Error: [at <router-exp>] [action <action>] [upon <condition>] expected.

    Syntax error in "inject" attribute of route object. This attribute specifies which routers perform the aggregation and when they perform it. See RFC 2622 for more details about the meaning of this attribute.
    <router-expr>
        is an expression over router IP addresses, inet-rtr names, and rtr-set names using operators AND, OR, and EXCEPT. The binary "EXCEPT" operator is the set subtraction operator and has the same precedence as the operator AND. EXCEPT = AND NOT.
    <action>
        defines an action to execute to modify various BGP attributes. See RFC2622 for more details on action specificatin.
    <condition>
        is a boolean condition. The aggregate is generated if and only if this condition is true. See RFC 2622 for more details on "condition" specification.

Error: [ATOMIC] [[<filter>] [PROTOCOL <protocol> <filter>] ...] expected.

    Syntax error in "components" attribute of the "route" object. This attribute specifies which routes are used to form the aggregate.
    <filter>
        is RPSL filter expression over AS-number, AS-sets, route-set, prefixes, range operations, etc.
    <protocol>
        is a routing protocol name, as defined in RPSL dictionary. See RFC 2622 for more detailed description of this attribute.

Error: invalid member

    The member of the route-set should be a valid IPV4 prefix in "/" slash notation.

RPSL dictionary errors

These errors are also RPSL parser errors. They can be encountered if you modify RPSL dictionary, recompile and try to use the parser.

Error: invalid rp-attribute specification

    Syntax error in rp-attribute specification. rp-attributes are used in RPSL dictionary specification to describe routing protocol attributes and methods. E.g. RPSL rp-attributes for BGP4 match BGP4 attributes, and their methods are actions to perform. For instance, "action aspath.prepend(AS123);" prepends the BGP AS_path attribute with AS123 for the routes matched by the filter. For more information about rp-attributes (Routing Policy attributes) and how they reflect real BGP attributes, see RFC 2622.

Error: invalid method specification for <rp-attribute>

    Syntax error in rp-attribute specification, in method. See RFC 2622 for details about rp-attributes specification syntax.

Error: invalid operator specification for <rp-attribute>

    Syntax error in rp-attribute specification, in operator. See RFC 2622 for details about rp-attributes specification syntax.

Error: invalid operator

    Syntax error in rp-attribute specification, in operator. See RFC 2622 for details about rp-attributes specification syntax.

Error: method specification expected

    Method definition in rp-attribute has wrong syntax or is incomplete. The format is <method_name>(<arguments>).

Error: invalid typedef specification

    Error in "typedef" attribute. This attribute defines the data types for method arguments, which are then used with rp-attributes. See RFC 2622 for more information of "typedef" specification.

Error: empty union specification

    Syntax error in union specification for type definition. The syntax is: typedef: union <list of types to be included in union>. This error can be encountered if the list is empty.

Error: invalid type <string>

    Invalid string found where the type definition keyword expected.

Error: invalid type <string>[<integer>,<integer>]

    Invalid string found where the type definition keyword expected.

Error: invalid type <string>[<float>,<float>]"

    Invalid string found where the type definition keyword expected.

Error: invalid type <string>, enum expected

    [ <enum_list> ] should be preceeded by "enum" keyword.

Error: invalid list size

    Syntax error in list specification. The syntax is: list of <valid_type>-<valid-type> ... <valid-type>.

Error: invalid protocol option

Error: invalid protocol name

Error: in attr option specification.

    Synatx error in attribute "attr" specification of "dictionary" class. The syntax is:
    attr: <attr_name> [syntax(syntax_type),] optional/mandatory single/multiple type

Error: no known syntax rule for <syntax>.

    Syntax definition is not found (see rpsl/rpsl/rptype.cc);

Error: could not compile regexp <regexp>.

    Requested syntax type is "regexp", but failed to compile the regular expression.

Error: attr name expected.

    Syntax error in attribute "attr" specification, see syntax definition above.

Error: argument <argument> to <rp-attribute>.operator<method> should be <type>.

    Wrong operatior used with this rp-attribute. Check rp-attribute specification and operators/methods (RFC 2622).

Error: wrong number of arguments to <rp.attribute>.operator<method>.

    Wrong number of arguments used with rp-attribute's operator. Check rp-attribute specification and its operators/methods (RFC 2622).

Error: argument <argument> to <rp-attribute>.<method> should be <type>.

    Wrong argument used with operator/method with this rp-attribute. Check rp-attribute's methods specification (RFC 2622).

Error: wrong number of arguments to <rp-attribute>.<method>.

    Wrong number of arguments used with this method. Check method's specification (RFC 2622).

Error: rp-attribute <rp-attribute> does not have <method> defined.

    Undefined method used with rp-attribute. Check rp-attribute's methods' specification (RFC 2622) for this rp-attribute.

REFERENCES

•   RFC 2622 "Routing Policy Specification Language (RPSL)" ftp://ftp.ripe.net/rfc/rfc2622.txt

•   RFC 822 "Standard for the format of ARPA INTERNET text messages" ftp://ftp.ripe.net/rfc/rfc822.txt

•   RFC 1034 "Domain names - concepts and facilities" ftp://ftp.ripe.net/rfc/rfc1034.txt

AUTHORS
Katie Petrusha <katie@ripe.net>