> On 11 Aug 2020, at 17:30, Neale Ranns (nranns) <nra...@cisco.com> wrote:
> 
> 
> 
> IMO it's reasonable to use ACL and ABF on the same interface as they provide 
> independent functions, especially when they are matching against different 
> criteria.

+1. Those two are orthogonal functions. ABF uses the acl as a service infra to 
select which traffic it deals with - but that’s it.

> Re the debug CLI, it's often not robust to garbage input. If the API has the 
> same problem though, I'll fix it.

BTW - I did mark ABF APIs as “in-progress”, as we discussed a few months ago, 
so they are subject to changes. 

—a

> 
> Neale
> 
> tpyed by my fat tumhbs
> 
> From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> on behalf of Balaji 
> Venkatraman via lists.fd.io <balajiv=cisco....@lists.fd.io>
> Sent: Tuesday, August 11, 2020 4:08:56 PM
> To: Venkat <venkat.dabb...@gmail.com>; Andrew 👽 Yourtchenko 
> <ayour...@gmail.com>
> Cc: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io>
> Subject: Re: [vpp-dev] ABF and ACL co-existence on an Interface
>  
> Hi Venkat,
> Ideally, we should not let ABF be configured if the interface is already tied 
> to an ACL. Conversely, an ACL should be honored when the interface is tied to 
> an ABF. Right? 
> You might want to confirm how we handle the behavior from experts here.
> BTW, the second scenario you seeing the crash..
> Issue 2: Delete ABF Policy that doesn’t have forwarding Path
> 
> That is an interesting scenario. Shouldn’t ABF mandatorily have an underlying 
> ACL with a forwarding path?
> 
> 
> Thanks!
> —
> Regards,
> Balaji.
> 
> Get Outlook for iOS
> From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> on behalf of Venkat 
> <venkat.dabb...@gmail.com>
> Sent: Monday, August 10, 2020 11:52:46 PM
> To: Andrew 👽 Yourtchenko <ayour...@gmail.com>
> Cc: Balaji Venkatraman (balajiv) <bala...@cisco.com>; vpp-dev@lists.fd.io 
> <vpp-dev@lists.fd.io>
> Subject: Re: [vpp-dev] ABF and ACL co-existence on an Interface
>  
> Hi Andrew, 
> 
> Here are a couple of test scenarios where I observed vpp crash while 
> experimenting with ABF configuration. 
> I will find time to translate them to make test cases soon. 
> Meanwhile here are the steps to reproduce the issues.  
> 
>  Issues
>  1: ABF and ACL attached to the same interface
> 
> 
> In vpp VAT shell
>  and configure bunch of ACL rules in a group
> 
> 
> vat#
>  acl_add_replace  ipv4 permit src 30.30.30.1/32 dst
> 40.40.40.1/32 sport 1000 dport 1000, ipv4 permit+reflect src
> 10.10.10.0/24, ipv4 permit+reflect src 
> 20.20.20.0/24
> vl_api_acl_add_replace_reply_t_handler:109:
>  ACL index: 0
> 
> 
> Attach ACL Group
>  create above to lan interface
> 
> 
> vat#
>  acl_interface_set_acl_list sw_if_index 1 input 0
> 
> 
> Following will be
>  the state in vpp
> 
> 
> DBGvpp#
>  show version 
> vpp
>  v19.08.1-282~ga6a98b546 built by root on 525c154d7fe6 at Tue Aug  4 21:10:49 
> UTC 2020
> DBGvpp#
> 
> DBGvpp#
>  show hardware-interfaces brief
>               Name 
>                Idx   Link  Hardware
> lan 
>                                1     up   lan
>   Link
>  speed: 10 Gbps
> local0
>                              0    down  local0
>   Link
>  speed: unknown
> loop0 
>                              3     up   loop0
>   Link
>  speed: unknown
> loop1 
>                              5     up   loop1
>   Link
>  speed: unknown
> tap0
>                                4     up   tap0
>   Link
>  speed: unknown
> wan 
>                                2     up   wan
>   Link
>  speed: 1 Gbps
> 
> DBGvpp#
>  show acl-plugin acl 
> acl-index
>  0 count 3 tag {}
>           0:
>  ipv4 permit src 30.30.30.1/32 dst 
> 40.40.40.1/32 proto 0 sport 1000 dport 1000
>           1:
>  ipv4 permit+reflect src 10.10.10.0/24 dst 
> 0.0.0.0/0 proto 0 sport 0-65535 dport 0-65535
>           2:
>  ipv4 permit+reflect src 20.20.20.0/24 dst 
> 0.0.0.0/0 proto 0 sport 0-65535 dport 0-65535
>   applied
>  inbound on sw_if_index: 1
>   used
>  in lookup context index: 0
> 
> DBGvpp#
>  show acl-plugin interface 
> sw_if_index
>  0:
> sw_if_index
>  1:
>   input
>  acl(s): 0
> DBGvpp#
> 
> 
> Create another ACL
>  for ABF configuration
> 
> 
> vat#
>  acl_add_replace  ipv4 permit src 11.11.11.0/24 proto 17  
> vl_api_acl_add_replace_reply_t_handler:109:
>  ACL index: 1
> 
> DBGvpp#
>  show acl-plugin acl 
> acl-index
>  0 count 3 tag {}
>           0:
>  ipv4 permit src 30.30.30.1/32 dst 
> 40.40.40.1/32 proto 0 sport 1000 dport 1000
>           1:
>  ipv4 permit+reflect src 10.10.10.0/24 dst 
> 0.0.0.0/0 proto 0 sport 0-65535 dport 0-65535
>           2:
>  ipv4 permit+reflect src 20.20.20.0/24 dst 
> 0.0.0.0/0 proto 0 sport 0-65535 dport 0-65535
>   applied
>  inbound on sw_if_index: 1
>   used
>  in lookup context index: 0
> acl-index
>  1 count 1 tag {}
>           0:
>  ipv4 permit src 11.11.11.0/24 dst 
> 0.0.0.0/0 proto 17 sport 0-65535 dport 0-65535
> DBGvpp#
> 
> 
> Configure ABF Policy
>  referring to the above created ACL
> 
> 
> DBGvpp#
>  abf policy add id 100 acl 1 via 10.39.27.227 wan
> 
> DBGvpp#
>  show abf policy 
> abf:[0]:
>  policy:100 acl:1
>      path-list:[47]
>  locks:1 flags:shared,no-uRPF, uRPF-list: None
>       path:[47]
>  pl-index:47 ip4 weight=1 pref=0 attached-nexthop:  oper-flags:resolved,
>         10.39.27.227
>  wan
>       [@0]:
>  ipv4 via 10.39.27.227 wan: mtu:9000 b496915808e1b49691591f610800
> DBGvpp#
>  show abf attach lan
> DBGvpp#
> 
> 
> Attach ABF Policy
>  to the same interface as ACL Group 0 was attached. This will result in a vpp 
> crash. 
> 
> 
> DBGvpp#
>  abf attach ip4 policy 100 priority 100 lan
> 
> 
> 
> Issue
>  2: Delete ABF Policy that doesn’t have forwarding Path
> 
> 
> Create another ACL
>  for ABF configuration
> 
> 
> vat#
>  acl_add_replace  ipv4 permit src 11.11.11.0/24 proto 17  
> vl_api_acl_add_replace_reply_t_handler:109:
>  ACL index: 0
> 
> DBGvpp#
>  show acl-plugin acl 
> acl-index
>  0 count 1 tag {}
>           0:
>  ipv4 permit src 11.11.11.0/24 dst 
> 0.0.0.0/0 proto 17 sport 0-65535 dport 0-65535
> 
> 
> Configure ABF Policy
>  referring to the above created ACL with no forwarding path
> 
> 
> DBGvpp#
>  abf policy add id 100 acl 0
> DBGvpp#
>  show abf policy 
> abf:[0]:
>  policy:100 acl:0
>      path-list:[47]
>  locks:1 flags:shared,no-uRPF, uRPF-list: None
> 
> 
> Delete ABF Policy
>  and this results in a VPP crash
> 
> 
> DBGvpp#
>  abf policy del id 100 acl 0
> 
> 
>> On Fri, Aug 7, 2020 at 5:36 PM Andrew 👽 Yourtchenko <ayour...@gmail.com> 
>> wrote:
>> 
>> 
>> 
>> On 8 Aug 2020, at 01:40, Venkat <venkat.dabb...@gmail.com> wrote:
>> 
>> 
>> Thank you Andrew for the response. Will invest time to put together the test 
>> cases. Could you please point me to sample test scripts for vpp for 
>> reference? 
> 
> You can look in the “test” subdirectories of the ABF and acl plug-ins for the 
> inspiration, hopefully should be a simple tweak to combine the two...
> 
>> Or shall I compile a list of test cases I am executing using vpp dbg shell 
>> CLI commands? 
>> 
>> Also, do you think there are significant changes between 1908 vs 2001 or 
>> 2005 VPP stable branches for ABF plugin code making a case to upgrade vpp? 
> 
> ACLs didn’t change for quite a while - not sure about the ABF...
> 
> You can do git log —oneline | egrep “acl|abf” on master branch to see what 
> changes were there...
> 
> —a
> 
>> Please advise. 
>> 
>> thanks
>> Venkat
>> 
>> 
>> On Fri, Aug 7, 2020 at 4:25 PM Andrew 👽 Yourtchenko <ayour...@gmail.com> 
>> wrote:
>> Sure. Neither me nor Neale have k8s or ligato.
>> 
>> If you invest some effort into building a small “make test” script(s) that 
>> show the issues then:
>> 1) it will be possible for at least one of us to take a look at them
>> 2) they won’t resurface again.
>> 
>> Does this make sense?
>> 
>> Also, probably ligato folks have some testing as well - have you discussed 
>> with them what kind of scenarios they tested ?
>> 
>> --a
>> 
>>> On 7 Aug 2020, at 21:35, Venkat <venkat.dabb...@gmail.com> wrote:
>>> 
>>> 
>>> Just to give more context on my test environment... I am using contiv vpp  
>>> Kubernetes environment and configuring ABFs via etcdctl. 
>>> 
>>> eg. 
>>> / # etcdctl --endpoints=10.43.255.42:12379 put 
>>> /vnf-agent/eos-branch-1/config/vpp/abfs/v2/abf/4 
>>> '{"index":4,"acl_name":"023-sjcf
>>> w-icmp-deny","attached_interfaces":[{"input_interface":"lan","priority":5}],"forwarding_paths":[{"interface_name":"sjc-blr-tunne
>>> l"}]}'
>>> 
>>> Just wondering of ABF feature is mature enough in vpp. I am facing a good 
>>> number of issues as I try to experiment with various scenarios. 
>>> I seeing issues when NAT is enabled on the interface, then ABF is not 
>>> exercised. 
>>> I am not sure how to setup deny rules on the interface, if we cannot have 
>>> ABF and ACL co-exist on the interface. 
>>> Observing crashes in VPP while performing some of these tests. 
>>> 
>>> DBGvpp# show version 
>>> vpp v19.08.1-282~ga6a98b546 built by root on 525c154d7fe6 at Tue Aug  4 
>>> 21:10:49 UTC 2020
>>> DBGvpp#
>>> 
>>> thanks
>>> Venkat
>>> 
>>> On Fri, Aug 7, 2020 at 10:27 AM Andrew 👽 Yourtchenko <ayour...@gmail.com> 
>>> wrote:
>>> A contribution to “make test” that covers this scenario would be very much 
>>> appreciated...
>>> 
>>> --a
>>> 
>>>> On 7 Aug 2020, at 19:07, Venkat <venkat.dabb...@gmail.com> wrote:
>>>> 
>>>> 
>>>> Thank you for the response Balaji. 
>>>> I have noticed VPP crashes when I configure an ABF on the interface that 
>>>> already has an non-abf ACL attached to the interface. 
>>>> And when I don't have non-abf ACL, then I am able to install ABF rule. 
>>>> Hence was wondering if it's a misconfiguration to have both ABF and 
>>>> non-abf ACL on the same interface. I agree, in any case, it should not 
>>>> result in a crash. 
>>>> 
>>>> thanks
>>>> Venkat
>>>> 
>>>> 
>>>> On Fri, Aug 7, 2020 at 9:59 AM Balaji Venkatraman via lists.fd.io 
>>>> <balajiv=cisco....@lists.fd.io> wrote:
>>>> Hi Venkat,
>>>> 
>>>>  
>>>> 
>>>> Underlying the ABF is another ACL. When we attach an ABF to the interface, 
>>>> the ACL it inherits gets applied to the interface. Not sure if another ACL 
>>>> independent of the above can be attached to the same interface. But, in 
>>>> any case, it should not crash 😊
>>>> 
>>>> Thanks!
>>>> 
>>>>  
>>>> 
>>>> --
>>>> 
>>>> Regards,
>>>> 
>>>> Balaji. 
>>>> 
>>>>  
>>>> 
>>>>  
>>>> 
>>>> From: <vpp-dev@lists.fd.io> on behalf of "vdabb...@infoblox.com" 
>>>> <vdabb...@infoblox.com>
>>>> Date: Friday, August 7, 2020 at 9:36 AM
>>>> To: "vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io>
>>>> Subject: [vpp-dev] ABF and ACL co-existence on an Interface
>>>> 
>>>>  
>>>> 
>>>> Hello,
>>>> Experimenting ABF in VPP. Had a question regarding the co-existence of ABF 
>>>> and ACL on an interface. 
>>>> Seems like we can either attach ABF or ACL to an interface and not both. 
>>>> Is this the behavior or am I missing anything?
>>>> When I try to install ABF rule on an interface that already has ACL 
>>>> attached, I see vpp resulting in a crash. 
>>>> Please confirm.
>>>> thanks
>>>> Venkat
>>>> 
>>>> 
>>>> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#17189): https://lists.fd.io/g/vpp-dev/message/17189
Mute This Topic: https://lists.fd.io/mt/76052836/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to