Description

The following log messages are seen on EVO platforms running 22.2R2 and above:

User@RouterA> show log messages.9.gz | match jtd_ioctl

 kernel: [jtd_ioctl:1194] Unable to find jtd flow for TCP ioctl SIOCUTCPSESS: local: X.X.X.200:0 remote: X.X.X.202:179 vrf 0

 kernel: [jtd_ioctl:1194] Unable to find jtd flow for TCP ioctl SIOCUTCPSESS: local: X.X.X.200:0 remote: X.X.X.202:179 vrf 0

kernel: [jtd_ioctl:1194] Unable to find jtd flow for TCP ioctl SIOCUTCPSESS: local: X.X.X.200:0 remote: X.X.X.202:179 vrf 0

kernel: [jtd_ioctl:1194] Unable to find jtd flow for TCP ioctl SIOCUTCPSESS: local: xxxx:xxxx:xxx:ffff:ffff:ffff:ffff:10:0 remote: xxxx:xxxx:xxx:ffff:ffff:ffff:ffff:2:179 vrf 0

These are seen from the JTD tool which was introduced from Junos release 22.2R2 on EVO platforms.

Symptoms

The JTD module is a kernel loadable model in EVO system to handle the hostbound traffic. It works like a bridge between PFEs and Linux kernel to “translate” the packets between various applications (native Linux kernel) and FPC (TTP encapsulated packets).
Starting from EVO release 22.2, the JTD statistics counter logging will be migrated to the Linux tracepoint handling.

The following logs are seen in "show log messages"

kernel: [jtd_ioctl:1194] Unable to find jtd flow for TCP ioctl SIOCUTCPSESS: local: 

 kernel: [jtd_ioctl:1194] Unable to find jtd flow for TCP ioctl SIOCUTCPSESS: local: 


Use the following command to check the logs:

User@RouterA# run show system jtd-sessions 
JTD sessions:
IPv4: Main hash
---------------
Proto                                         Local                                        Remote   PFE           VRF    TTP Len  MTU  Flags
tcp4                            172.17.63.200:179                              172.17.63.202:62325   128.0.0.1    0      44       1500 2
TTP header: Type: 2 Priority: 0 Proto: 0 IFL index: 1018 Length: 155 Hint: 0x40008001 NH index: 1003
-----
tcp4                            172.17.63.200:44462                              172.17.63.204:179   128.0.0.1    0      28       1500 2
TTP header: Type: 4 Priority: 0 Proto: 2 IFL index: 1028 Length: 68 Hint: 0x40008000 NH index: 1000
-----

---
IPv6: Main hash
---------------
Proto                                         Local                                        Remote   PFE           VRF    TTP Len  MTU  Flags
tcp6     fd00:acde:370:ffff:ffff:ffff:ffff:10:49626        fd00:acde:370:ffff:ffff:ffff:ffff:1:179   128.0.0.1    0      44       1500 4
TTP header: Type: 2 Priority: 0 Proto: 0 IFL index: 1018 Length: 122 Hint: 0x40008001 NH index: 11000
-----
tcp6     fd00:acde:370:ffff:ffff:ffff:ffff:10:49600        fd00:acde:370:ffff:ffff:ffff:ffff:1:179   128.0.0.1    0      44       1500 20
TTP header: Type: 2 Priority: 0 Proto: 0 IFL index: 1018 Length: 114 Hint: 0x40008001 NH index: 11000
-----

Solution

This is a transient corner case which will be noticed while updating the TCP session (nsagnetd/SI is “updating”), entry is not found under jtd-sessions and error is printed. 

To reproduce the issue, consider two directly connected routers where one router is running EVO release 22.2R2 and above, which will be our DUT or interested device, then take the following steps:

  1. Initial State BGP sessions are down on both sides:

    X.X.X.X        1200         0         0      0     29 1d 20:36:50 Connect
    X.X.X.X         1200         0         0      0      0 2d 20:36:54 Connect
    X.X.X.X         1200         0         0      0     23 1d 20:36:52 Active
    fd00:acde:370:ffff:ffff:ffff:ffff:1       1200         0         0      0     22 1d 20:36:52 Active
    fd00:acde:370:ffff:ffff:ffff:ffff:2       1200         0         0      0      0 2d 20:48:18 Active
    fd00:acde:370:ffff:ffff:ffff:ffff:3       1200         0         0      0     23 1d 20:36:52 Active
  2. Bring up a few of the BGP sessions:

    X.X.X.202         1200         8         9      0     29          6 Establ
    
     inet.0: 0/0/0/0
     inet.2: 0/0/0/0
     bgp.l3vpn.0: 0/0/0/0
     bgp.l3vpn-inet6.0: 0/0/0/0
     bgp.l2vpn.0: 0/0/0/0
     bgp.evpn.0: 0/0/0/0
    X.X.X.X         1200         0         0      0      0         2d 20:39:14 Connect
    X.X.X.204        1200         4         4      0     23         32 Establ
     inet.0: 0/0/0/0
    
  3. Bring down the BGP session from Peer end router. At the same time, try changing the loopback interface from lo0.10 to lo0.1000 on local router.

    User@RouterA> show log messages.9.gz | match jtd_ioctl
    
    kernel: [jtd_ioctl:1194] Unable to find jtd flow for TCP ioctl SIOCUTCPSESS: local: X.X.X.200:0 remote: 172.17.63.202:179 vrf 0
    kernel: [jtd_ioctl:1194] Unable to find jtd flow for TCP ioctl SIOCUTCPSESS: local: X.X.X.200:0 remote: 172.17.63.202:179 vrf 0

This corner case is specific to a connect() operation. For an established session, SI will have learned the kernel-assigned local port and would not experience this result. If the BGP sessions were established, the logs can be considered as noise related to a transient condition

Modification History

2023-09-12: Initial Publication

Related Information

TECH SR - 2023-0623-719116