[vpp-dev] Help Needed with Worker Thread Selection in VPP's Data Path
Hello everyone, I am currently working on synchronizing session information between two nodes in a High Availability (HA) setup. When the Master node sends session information to the Backup node, it is important that the information is handed off to the corresponding worker thread in order to properly serve the packet with the same 5-tuple. Failure to do so would result in a synchronization issue. To distribute the packets to the worker threads, I plan to use VLIB handoff code. However, I am unsure how VPP selects the worker thread on the datapath. Specifically, I have the following questions: If each thread has a dedicated rx-queue, can we use dpdk's hash algorithm to select the corresponding rx-queue and determine which threads are attached to it? Are there any examples of this in the VPP codebase? If multiple worker threads are attached to a single rx-queue, how are the packets distributed? Round-robin would not be desirable since it would result in the same 5-tuple session being passed to multiple threads. If dpdk is disabled, would the behavior be different? As someone new to VPP and lower level networking, I would greatly appreciate any comments or suggestions. Thank you for your help. Best regards, Chul-Woong -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#22613): https://lists.fd.io/g/vpp-dev/message/22613 Mute This Topic: https://lists.fd.io/mt/97156106/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [vpp-dev] Q) Is it a possible acl-plugin race condtion?
Thank you for your answer. It's for fast datapath processing, I see. However, I'm curious whether it is an accepted behavior to stop routing while processing configuration change. Are production CISCO routers made in that way? Kind regards, Chul-Woong -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#22317): https://lists.fd.io/g/vpp-dev/message/22317 Mute This Topic: https://lists.fd.io/mt/95613760/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[vpp-dev] Q) Is it a possible acl-plugin race condtion?
Hi, team. I'm reading acl-plugin code and have a question on race condition. When vpp needs to update acl rules, it does not keep a refcnt or something and just `vec_free`s the rules. Is it safe?: ``` /* ACL updater: from acl_add_list() */ { a = am->acls + *acl_list_index; /* Get rid of the old rules */ if (a->rules) vec_free (a->rules); /* (A) */ } ... /* ACL user: from single_acl_match_5tuple() */ for (i = 0; i < vec_len(acl_rules); i++) { r = &acl_rules[i]; ... /* (B) */ ``` I worry that vpp can SEGV by refering freed memory when it referes an acl rules `r` in (B) while another thread frees the rule in (A). Best regards, Chul-Woong -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#22313): https://lists.fd.io/g/vpp-dev/message/22313 Mute This Topic: https://lists.fd.io/mt/95613760/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[vpp-dev] Q) Why does the timeout of ACL plugin get halved?
Hi, all. When I try the ACL plugin, I find that transient timeout of the TCP connection gets halved. For example, the session entry for a finished TCP session gets cleaned after 60 seconds, even if the TCP idle timeout is set to default 120 seconds. This is the relevant code. https://github.com/FDio/vpp/blob/06923b33a9507ee6a92facb770650fff93d89dff/src/plugins/acl/sess_mgmt_node.c#L133 I think the author's original intention is `check them twice per user timeout`, but the current behavior is `halve the user timeout`. Any comments will be appreciated deeply. Best regards, Chul-Woong -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#21996): https://lists.fd.io/g/vpp-dev/message/21996 Mute This Topic: https://lists.fd.io/mt/94254992/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[vpp-dev] Q) Service function chaining
Hi, all. I'm looking for ways to service function chaining in container-native environments. My use case is security vnfs. I've developed on-premise boxes for several years and want to make vnfs using vpp now. As far as I surveyed, ligato/sfc project and nsm(network service mesh) are only two viable solutions. What sfc way do you suggest, in terms of active development, maturity, and user community? Now I'm trying ligato/sfc quick start ( https://github.com/ligato/sfc-controller ) but docker image is missing and have trouble in finding ligato community. Can you share your experience on doing sfc? Best regards, Chul-Woong -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#13110): https://lists.fd.io/g/vpp-dev/message/13110 Mute This Topic: https://lists.fd.io/mt/31715546/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-