BIRD hooks specifications
pre_receive_from_client
and post_receive_from_client
function name:
hook_pre_receive_from_client
/hook_post_receive_from_client
arguments:
int client_asn
: ASN of the client that announces the route to the route server.ip client_ip
: IP address of the client that announces the route to the route server.string client_id
: the client ID internally used by ARouteServer and BIRD.
return value:
true
orfalse
These functions are called within the filter that handles routes entering the route server from clients.
The pre_ version is called as soon as the processing is started; the post_ version is called just before the route is being accepted and after ARouteServer features and filters have been applied.
The return value determines whether the route is accepted (true
) or rejected (false
) by the route server.
pre_announce_to_client
and post_announce_to_client
function name:
hook_pre_announce_to_client
/hook_post_announce_to_client
arguments:
int client_asn
: ASN of the client that the route is announced to by the route server.ip client_ip
: IP address of the client that the route is announced to by the route server.string client_id
: the client ID internally used by ARouteServer and BIRD.
return value:
true
orfalse
These functions are called within the filter that handles routes leaving the route server toward its clients.
The pre_ version is called as soon as the processing is started; the post_ version is called just before the route is being announced and after ARouteServer features and filters have been applied.
The return value determines whether the route is announced (true
) or not (false
) by the route server to the client identified by the arguments.
route_can_be_announced_to
function name:
hook_route_can_be_announced_to
arguments:
int client_asn
: ASN of the client that the route is announced to by the route server.ip client_ip
: IP address of the client that the route is announced to by the route server.string client_id
: the client ID internally used by ARouteServer and BIRD.
return value:
true
orfalse
This function is called within the filter that handles routes leaving the route server toward its clients, more precisely when BGP control communities are processed to determine whether the route can be announced to a specific client.
The return value determines whether the route is announced (true
) or not (false
) by the route server to the client identified by the arguments.
announce_rpki_invalid_to_client
function name:
hook_announce_rpki_invalid_to_client
arguments:
int client_asn
: ASN of the client that the route is announced to by the route server.ip client_ip
: IP address of the client that the route is announced to by the route server.string client_id
: the client ID internally used by ARouteServer and BIRD.
return value:
true
orfalse
This function is called when RPKI validation is enabled and an INVALID route is processed before being announced to a client.
The return value determines whether the RPKI INVALID route is announced (true
) or not (false
) by the route server to the client identified by the arguments.
scrub_communities_in
and scrub_communities_out
function name:
hook_scrub_communities_in
/hook_scrub_communities_out
arguments: none
return value: none
These functions are called for route entering / leaving the route server; their purpose is only to remove/adjust any custom BGP community used by the route server.
apply_blackhole_filtering_policy
function name:
hook_apply_blackhole_filtering_policy
arguments:
int ip_ver
: IP version (4
or6
)
return value: none
This function is called when a blackhole filtering request is processed. It can be used to perform custom manipulation of the route before it is announced to clients.