static void load_xinfo_from_proc_raw(ino_t netns_inode);
static void load_xinfo_from_proc_tcp(ino_t netns_inode);
static void load_xinfo_from_proc_udp(ino_t netns_inode);
+static void load_xinfo_from_proc_udplite(ino_t netns_inode);
static void load_xinfo_from_proc_tcp6(ino_t netns_inode);
static void load_xinfo_from_proc_udp6(ino_t netns_inode);
static void load_xinfo_from_proc_raw6(ino_t netns_inode);
load_xinfo_from_proc_unix(netns);
load_xinfo_from_proc_tcp(netns);
load_xinfo_from_proc_udp(netns);
+ load_xinfo_from_proc_udplite(netns);
load_xinfo_from_proc_raw(netns);
load_xinfo_from_proc_tcp6(netns);
load_xinfo_from_proc_udp6(netns);
&udp_xinfo_class);
}
+/*
+ * UDP-Lite
+ */
+static bool udplite_fill_column(struct proc *proc __attribute__((__unused__)),
+ struct sock_xinfo *sock_xinfo,
+ struct sock *sock __attribute__((__unused__)),
+ struct libscols_line *ln __attribute__((__unused__)),
+ int column_id,
+ size_t column_index __attribute__((__unused__)),
+ char **str)
+{
+ return l3_fill_column_handler(INET, sock_xinfo, column_id, str)
+ || l4_fill_column_handler(UDPLITE, sock_xinfo, column_id, str);
+}
+
+static const struct l4_xinfo_class udplite_xinfo_class = {
+ .sock = {
+ .get_name = udp_get_name,
+ .get_type = udp_get_type,
+ .get_state = tcp_get_state,
+ .get_listening = NULL,
+ .fill_column = udplite_fill_column,
+ .free = NULL,
+ },
+ .scan_line = tcp_xinfo_scan_line,
+ .get_addr = tcp_xinfo_get_addr,
+ .is_any_addr = tcp_xinfo_is_any_addr,
+ .family = AF_INET,
+ .l3_decorator = {"", ""},
+};
+
+static void load_xinfo_from_proc_udplite(ino_t netns_inode)
+{
+ load_xinfo_from_proc_inet_L4(netns_inode,
+ "/proc/net/udplite",
+ &udplite_xinfo_class);
+}
+
+
/*
* RAW
*/
state=_SOCK.STATE_[ laddr=_UDP.LADDR_ [ raddr=_UDP.RADDR_]]
+
*lsfd* hides ``raddr=`` if _UDP.RADDR_ is ``0.0.0.0`` and _UDP.RPORT_ is 0.
+
+UDPLITE:::
+state=_SOCK.STATE_[ laddr=_UDPLITE.LADDR_ [ raddr=_UDPLITE.RADDR_]]
+
UNIX-STREAM:::
state=_SOCK.STATE_[ path=_UNIX.PATH_]
UDP.RPORT <``integer``>::
Remote UDP port.
+UDPLITE.LADDR <``string``>::
+Local IP address and local UDPLite port.
+
+UDPLITE.LPORT <``integer``>::
+Local UDP port.
+
+UDPLITE.RADDR <``string``>::
+Remote IP address and remote UDPLite port.
+
+UDPLITE.RPORT <``integer``>::
+Remote UDP port.
+
UID <``number``>::
User ID number.
N_("local UDP port") },
[COL_UDP_RPORT]={"UDP.RPORT", 0, SCOLS_FL_RIGHT, SCOLS_JSON_NUMBER,
N_("remote UDP port") },
+ [COL_UDPLITE_LADDR]={ "UDPLITE.LADDR",0, SCOLS_FL_RIGHT, SCOLS_JSON_STRING,
+ N_("local UDPLite address (INET address:UDPLite port)") },
+ [COL_UDPLITE_RADDR]={"UDPLITE.RADDR", 0, SCOLS_FL_RIGHT, SCOLS_JSON_STRING,
+ N_("remote UDPLite address (INET address:UDPLite port)") },
+ [COL_UDPLITE_LPORT]={"UDPLITE.LPORT", 0, SCOLS_FL_RIGHT, SCOLS_JSON_NUMBER,
+ N_("local UDPLite port") },
+ [COL_UDPLITE_RPORT]={"UDPLITE.RPORT", 0, SCOLS_FL_RIGHT, SCOLS_JSON_NUMBER,
+ N_("remote UDPLite port") },
[COL_UID] = { "UID", 0, SCOLS_FL_RIGHT, SCOLS_JSON_NUMBER,
N_("user ID number of the process") },
[COL_UNIX_PATH]={ "UNIX.PATH",0.4,SCOLS_FL_TRUNC,SCOLS_JSON_STRING,