Skip to content

Configuration : Process

Thomas Mangin edited this page Aug 2, 2014 · 10 revisions

#Process

This document present the NEW, not yet complete process API which is due to be used with the 3.5.0 release.

Syntax

process <name> {
   run </path/to/command with its args>;  # the command can be quoted
   encoder text|json;
   receive {
     # "message" in notification,open,keepalive,update,refresh,operational
     <message> {
       parsed;       # send parsed BGP data for "message"
       packets;      # send raw BGP message for "message"
       consolidate;  # group parsed and raw information in one JSON object
     }
     neighbor-changes;  # state of peer change (up/down)
   }
   send {
     packets;        # send all generated BGP messages
   }
}

run

the command can be single or double quoted

encoder

The way to send the data to the helper process. Using text the data with use the, old, text API. Using JSON the process will use the new JSON format.

The default is currently text but user should not rely on this default as it will change to JSON in a future release.

receive

The type of event the program wants to receive. Valid options for are :

  • notification
  • open
  • keepalive
  • update
  • refresh
  • operational

For each type of message, you can indicate if you want :

  • parsed, ExaBGP to parse the data and present the representation
  • raw, ExaBGP to present the raw BGP message ( JSON only )
  • consolidate, present both parse and raw information in ONE JSON object (instead of two)

neighbor-changes

You want to be informed of adjacency changes ( TCP session going up/down )

send

You should know what you ask ExaBGP to send to its peer, but should you want to know what raw data was generated and sent on the wire, ExaBGP can pass the JSON object with the packet sent on the wire to the helper process.