TCP traffic not going over VPN tunnel

I am facing issue with strongswan on Android (version 8/10).
my custom vpn is able to connect successfully with the server and is establishing tunnel.

Routes corresponding to this tunnel
ip route show table 0 dev tun1 table 1181 proto static scope link dev tun1 table 1181 proto static scope link
default via dev rmnet0 table 1003 proto static

ifconfig tun
tun1 Link encap:UNSPEC
inet addr: P-t-P: Mask:
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 TX bytes:0

If I do ping to, it works well. Wireshark capture shows ESP request/response packets.

However, if I open TCP connection for remote address as port 6000, TCP packets are not going over tunnel interface, rather they go over wifi interface and I can see destination of SYN packet as and source as wifi interface address.

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program Name
tcp 0 0* LISTEN –
tcp 0 1 SYN_SENT –

No SYN ACK since packets are going directly on wifi interface.
I also tried to bind TCP socket to my TUN interface IP but still same issue – SYN packet going directly out on the wifi interface.
netstat shows
tcp6 0 1 ::ffff: ::ffff:192.168.120:6000 SYN_SENT –

Andriod version 10 and tried on 8. Tried with emulator and Samsung Galaxy 10.
I am not using root mode.

Please let me know what could be the possible issue.