Dear Rubina,

When I was adding the multicore support, the handoff infra was just
being written at the same time, so I conservatively did not use it,
and currently the ACL plugin uses a bit of calculated juggling to
avoid requeueing the packet to the single-authority worker that has
created the session.

Having the ability to react on full TCP flags would require adding
this requeue logic - because anything more sophisticated than the
current estabished/transient dichotomy would be insane to handle
without the handoff. Of course that would require tests how it affects
all the functioning. I have it in my wishlist but no specific plans
yet that I would commit to.

Help always welcome, obviously :-)

--a



On 6/2/18, Rubina Bianchi <r_bian...@outlook.com> wrote:
> As Regards to your question, the case that I'm testing is connection
> tracking in stateful firewall which its functionality is the same as Linux
> conntrack. Do you have any plan to provide VPP as an appropriate
> infrastructure for firewall applications?
> ________________________________
> From: Andrew 👽 Yourtchenko <ayour...@gmail.com>
> Sent: Tuesday, May 29, 2018 1:10 PM
> To: Rubina Bianchi
> Cc: vpp-dev@lists.fd.io
> Subject: Re: [vpp-dev] Support for TCP flag
>
> Hi Rubina,
>
> I designed the stateful mode to be just a bit more than the ACL, with
> a "diode" state, rather than going for the fully fledged firewall
> model - as a balance between the simplicity and the functionality.
>
> The full tracking of the TCP state machine was not in scope - getting
> into that territory properly requires also TCP sequence number
> tracking, etc. - and there the complexity would far outweigh the
> usefulness for most practical cases.
>
> So I needed to primarily differentiate the session state from the
> timeout perspective - when to remove it.
>
> For that purpose, there are  two types of TCP sessions, decided by
> taking by the combination of SYN,FIN,RST,ACK TCP flag bits seen from
> each side:
>
> 1) Those that has seen SYN+ACK on both sides are fully open (this is
> where the "tcp idle" timeout applies, which is usually rather long.
>
> 2)  Those that had seen any other combination of the flags (this is
> where the "tcp transient" timeout applies, which is default to 2
> minutes)
>
> As we receive the packets, we update the seen flags, and we may change
> the current idle timeout based on the accumulated seen flags.
>
> Additionally, if we run out of sessions when creating the new ones,
> then the sessions in the transient state will be cleaned up and reused
> in the FIFO manner - so as to simulate a simple mechanism against the
> resource starvation for the higher session rate.
>
> This is a deliberate design choice, and unless there is some
> operational issues with it (i.e. where the resource clean-up does not
> happen where it should, etc...), I did not have any plans to change
> it.
>
> So, could you expand a bit more on what kind of use case you are
> looking for, to discuss further ?
>
> --a
>
> On 5/29/18, Rubina Bianchi <r_bian...@outlook.com> wrote:
>> Hi
>> I have a question about vpp stateful mode. It seems that vpp stateful
>> mode
>> hasn't implemented completely. I mean there aren't any feature same as
>> contrack in linux kernel. So, vpp doesn't have any mechanism to handle
>> TCP
>> sessions based on different flags. For example I sent TCP three way
>> handshaking packets in different order (ack -> syn -> syn-ack), in this
>> case
>> an idle session is added to session table. Do you have any plan to
>> develop
>> it?
>>
>

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#9589): https://lists.fd.io/g/vpp-dev/message/9589
Mute This Topic: https://lists.fd.io/mt/20405228/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