Filtering on Export-Protocol

Michael Rack mail at michaelrack.de
Wed Apr 8 20:17:51 CEST 2020


Aaahh now i see...

Currently I do pattern matching... Sorry.

function is_filtered_proto_in ( string p )
> {
>         return false;
> }
> function is_filtered_proto_out ( string p )
> {
>         if p ~ "*2220" then
>         {
>                 bgp_community.add((65000,11120));
>                 print "Reached is_filtered_proto_out( ", p, " ): Adding
> Community 65000,11120";
>         }
>         if p = "*2221" then
>         {
>                 bgp_community.add((65000,11050));
>                 print "Reached is_filtered_proto_out( ", p, " ): Adding
> Community 65000,11050";
>         }
>         return false;
> }


Am Mi., 8. Apr. 2020 um 20:09 Uhr schrieb Maria Matějka <
maria.matejka at nic.cz>:

> I say that there is no support for such a thing yet but I may be able to
> provide you with a patch (we want to add it to the filter language).
>
> Maria
>
> On April 8, 2020 7:58:41 PM GMT+02:00, Michael Rack <mail at michaelrack.de>
> wrote:
>>
>> Can you explain what you mean?
>>
>> How should I change my scripts?
>>
>> I think it will be a good workaround when I simply use functions instead
>> of filters, so I can bypass some parameters.
>>
>> *protocol bgp *'peer-neo' {
>>>       ipv4 { export where *filter_common_ipv4_out(* "peer-neo" *)*; };
>>> }
>>> *function  *filter_common_ipv4_out( string remote_peer_name ) {
>>>       if  remote_peer_name  = 'peer-neo' then .....;
>>> }
>>
>>
>> It is stupid because i define the peer-name twice.
>> But for now it will do the job relatively easily.
>>
>> I have over 40 peers, so I have to write the function / filter for common
>> use.
>>
>> Am Mi., 8. Apr. 2020 um 19:39 Uhr schrieb Maria Matějka <
>> maria.matejka at nic.cz>:
>>
>>> Hello!
>>>
>>> Currently not supported. Is simple exact match enough for your purposes?
>>> This may be simply added to the filter language.
>>>
>>> Maria
>>>
>>> On April 8, 2020 6:47:49 PM GMT+02:00, Michael Rack <mail at michaelrack.de>
>>> wrote:
>>>>
>>>> Hi Guys,
>>>>
>>>> if i am in the EXPORT-Routine, how can i access the "protocol-name" of
>>>> that instance that is currently using my function?
>>>>
>>>> If I rely on "proto" I get the protocol-name where the route comes
>>>> from. That is not what I want.
>>>>
>>>> *protocol bgp *'peer-neo' {
>>>>>       ipv4 { export filter *filter_common_ipv4_out*; };
>>>>> }
>>>>> *filter  * filter_common_ipv4_out() {
>>>>>       if  proto  = 'peer-neo' then .....;
>>>>> }
>>>>
>>>>
>>>> How can I match for 'peer-neo' ?
>>>>
>>>> Thank you.
>>>> Michael.
>>>>
>>>
>>> --
>>> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>>>
>>
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20200408/cbbd7dc6/attachment.htm>


More information about the Bird-users mailing list