Hi All, Issue is solved after linking the below files to my custom plugin.
+include_directories(/src/vnet) +include_directories(/src/vnet/ipip) +include_directories(/src/vnet/ipsec) Also I did extern ipsec_sa_t * in my plugin. Thanks, Sagar On Thu, Sep 22, 2022 at 10:29 PM sagar g <sagargad...@gmail.com> wrote: > > Hi All, > > I am trying to do the following tasks while deleting the sa to handle > inflight packets. > > 1. sa delete event processed from main thread > 2. I am trying to delay sa delete operation and queue this event to > maintenance list > 3. There is a timer run in each worker thread which iterates through the > maintenance list upon timer expiry. > 4. upon timer expiry, worker thread is trying to get the ipsec sa by doing > [ipsec_sa_t *sa = pool_elt_at_index (ipsec_sa_pool, sa_index);] (sa_index > is valid) > 5. Now when I try to access the fields of sa, I see sa address is invalid > and got SIGABORT. > > Please help me to know why my plugin is unable to get sa address unlike > esp_encrypt and esp_decrypt plugins as these plugins also run in worker > context. > > Is there some criteria to access ipsec pool entries by non-ipsec plugins? > > Note: Using GDB I have checked the contents of ipsec_sa_pool by offsetting > the sa_index and I see there are valid contents. > > (gdb) bt > #0 __pthread_kill_implementation (threadid=<optimized out>, > signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 > #1 0x00007ffb1f6818f3 in __pthread_kill_internal (signo=6, > threadid=<optimized out>) at pthread_kill.c:78 > #2 0x00007ffb1f6346a6 in __GI_raise (sig=sig@entry=6) at > ../sysdeps/posix/raise.c:26 > #3 0x00007ffb1f61e865 in __GI_abort () at abort.c:100 > #4 0x000055e3148a630a in os_exit (code=<optimized out>) at > /usr/src/debug/vpp-21.06.0-5~ga619cae67_dirty.x86_64/src/vpp/vnet/main.c:477 > #5 <signal handler called> > #6 0x00007ff89ef90757 in ipasec_sa_process_tick > (time_now=290.00001059803714, wk_id=0) > at > /src/cna/.build/opt/external-package/fdio/src/fdio.2106/src/an-plugins/an_ppe_pce-plugin/an_ppe_pce/an_ppe_pce_tw_node.c:921 > #7 an_ppe_pce_timer_process_tick (tv_now=<optimized out>, > wk_id=<optimized out>) > at > /src/cna/.build/opt/external-package/fdio/src/fdio.2106/src/an-plugins/an_ppe_pce-plugin/an_ppe_pce/an_ppe_pce_tw_node.c:1021 > #8 0x00007ff89ef92353 in an_ppe_pce_tw (vm=<optimized out>, > node=<optimized out>, from_frame=<optimized out>) > at > /src/cna/.build/opt/external-package/fdio/src/fdio.2106/src/an-plugins/an_ppe_pce-plugin/an_ppe_pce/an_ppe_pce_tw_node.c:1141 > #9 0x00007ffb1f9c67ab in dispatch_node (last_time_stamp=<optimized out>, > frame=0x0, dispatch_state=VLIB_NODE_STATE_POLLING, > type=VLIB_NODE_TYPE_INPUT, node=0x7ff8a0bc8140, vm=0x7ff8a61f74c0) > at > /usr/src/debug/vpp-21.06.0-5~ga619cae67_dirty.x86_64/src/vlib/main.c:1072 > #10 vlib_main_or_worker_loop (is_main=0, vm=0x7ff8a61f74c0) at > /usr/src/debug/vpp-21.06.0-5~ga619cae67_dirty.x86_64/src/vlib/main.c:1810 > #11 vlib_worker_loop (vm=0x7ff8a61f74c0) at > /usr/src/debug/vpp-21.06.0-5~ga619cae67_dirty.x86_64/src/vlib/main.c:1975 > #12 0x00007ffb1f93b68c in clib_calljmp () at > /usr/src/debug/vpp-21.06.0-5~ga619cae67_dirty.x86_64/src/vppinfra/longjmp.S:123 > #13 0x00007ff749932c80 in ?? () > #14 0x00007ff89aa931f2 in eal_thread_loop.cold () from > /usr/lib/vpp_plugins/dpdk_plugin.so > #15 0x0000000000000000 in ?? () > (gdb) f 6 > #6 0x00007ff89ef90757 in ipasec_sa_process_tick > (time_now=290.00001059803714, wk_id=0) > at > /src/cna/.build/opt/external-package/fdio/src/fdio.2106/src/an-plugins/an_ppe_pce-plugin/an_ppe_pce/an_ppe_pce_tw_node.c:921 > 921 > /src/cna/.build/opt/external-package/fdio/src/fdio.2106/src/an-plugins/an_ppe_pce-plugin/an_ppe_pce/an_ppe_pce_tw_node.c: > Success. > (gdb) info locals > p_oldest_elt = 0x7ff8bb682dd4 > sa = 0xffffffffbb67d440 > oldest_index = 1 > p_thread_data = 0x7ff8ae420bf0 > delete_flag = true > delete_count = 0 > said = 17220 > p_thread_data = <optimized out> > delete_flag = <optimized out> > delete_count = <optimized out> > said = <optimized out> > __FUNCTION__ = {<optimized out> <repeats 23 times>} > oldest_index = <optimized out> > p_oldest_elt = <optimized out> > sa = <optimized out> > _pool_p__ = <optimized out> > _pool_e__ = <optimized out> > _pool_p = <optimized out> > _pool_l = <optimized out> > _vec_l = <optimized out> > _V = <optimized out> > _x = <optimized out> > _y = <optimized out> > (gdb) p *sa > Cannot access memory at address 0xffffffffbb67d440 > (gdb) > > Thanks, > Sagar > -- > Regards, > sagar g > -- Regards, sagar g
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#21922): https://lists.fd.io/g/vpp-dev/message/21922 Mute This Topic: https://lists.fd.io/mt/93853071/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] -=-=-=-=-=-=-=-=-=-=-=-