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 wuth obvious explanation are listed here for reference, but to not have any documentation. Still, if description is unclear or unsufficient, please report to irrtoolset@ripe.net.
Command errors
Error: unknown irr protocol <protocol>, using irrd known protocols: irrd(rawhoisd), ripe(bird), ripe_perl
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). ripe_perl should be used with old ripe server.
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.
All protocols supported by IRRToolSet are using persistent connection to the IRR server. When the socket for IRR connection is created, SO_KEEPALIVE option is set to enable persistent connection (client has to keep checking if the destination is still alive). See setsockopt(2) manual page for details about possible failures.
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.
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.
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.
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:
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.
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.
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.
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: 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.
Error: syntax error
String starts with non-attribute or object is incomplete.
Wrong "changed" attribute. <email> is e-mail address in RFC 822 format, <YYYYMMDD> is a date.
Syntax for some RPSL attributes is defined by regular expressions. The error indicates that attribute's value didn't match the regular expression.
Generic RPSL attributes have fixed syntax, and exact match is expected.
Indicates a syntax error in "auth" attribute specification.
Unknown protocol specified in import/export policy. Defaults to BGP4. The known protocols are listed in RFC 2622, Dictionary section.
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.
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.
This option is not defined for this protocol in RPSL dictionary. For defined protocols and options, please see RPSL dictionary description in RFC2622.
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:
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:
Error: OUTBOUND <as-expression> expected.
Syntax error in "aggr-mtd" attribute of "route" object. The syntax is:
aggr-mtd: inbound
| outbound [<as-expression>]
Where:
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.
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.
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.
The member of the route-set should be a valid IPV4 prefix in "/" slash notation.
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.
Syntax error in rp-attribute specification, in method. See RFC 2622 for details about rp-attributes specification syntax.
Syntax error in rp-attribute specification, in operator. See RFC 2622 for details about rp-attributes specification syntax.
Syntax error in rp-attribute specification, in operator. See RFC 2622 for details about rp-attributes specification syntax.
Method definition in rp-attribute has wrong syntax or is incomplete. The format is <method_name>(<arguments>).
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.
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.
Invalid string found where the type definition keyword expected.
Invalid string found where the type definition keyword expected.
Invalid string found where the type definition keyword expected.
[ <enum_list> ] should be preceeded by "enum" keyword.
Syntax error in list specification. The syntax is: list of <valid_type>-<valid-type> ... <valid-type>.
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
Syntax definition is not found (see rpsl/rpsl/rptype.cc);
Requested syntax type is "regexp", but failed to compile the regular expression.
Syntax error in attribute "attr" specification, see syntax definition above.
Wrong operatior used with this rp-attribute. Check rp-attribute specification and operators/methods (RFC 2622).
Wrong number of arguments used with rp-attribute's operator. Check rp-attribute specification and its operators/methods (RFC 2622).
Wrong argument used with operator/method with this rp-attribute. Check rp-attribute's methods specification (RFC 2622).
Wrong number of arguments used with this method. Check method's specification (RFC 2622).
Undefined method used with rp-attribute. Check rp-attribute's methods' specification (RFC 2622) for this rp-attribute.