command: ip route
messages:
- op: sendto 3
strace-parse: sendto(3, [[{nlmsg_len=36, nlmsg_type=0x1a, nlmsg_flags=0x301, nlmsg_seq=1714932829, nlmsg_pid=0}, {rtm_family=0x2, rtm_dst_len=0, rtm_src_len=0, rtm_tos=0, rtm_table=0, rtm_protocol=0, rtm_scope=0, rtm_type=0, rtm_flags=0}, [{nla_len=8, nla_type=0xf}, 0xfe]], {nlmsg_len=0, nlmsg_type=0, nlmsg_flags=0, nlmsg_seq=0, nlmsg_pid=0}], 156, 0, NULL, 0) = 156
message: "240000001a0001035dcc37660000000002000000000000000000000008000f00fe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
- op: recvmsg 3
strace-parse: recvmsg(3, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=0x20}, 0x22) = 392
- op: recvmsg 3
strace-parse: recvmsg(3, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[[{nlmsg_len=68, nlmsg_type=0x18, nlmsg_flags=0x22, nlmsg_seq=1714932829, nlmsg_pid=415159}, {rtm_family=0x2, rtm_dst_len=0, rtm_src_len=0, rtm_tos=0, rtm_table=0xfe, rtm_protocol=0x10, rtm_scope=0, rtm_type=0x1, rtm_flags=0}, [[{nla_len=8, nla_type=0xf}, 0xfe], [{nla_len=8, nla_type=0x6}, 100], [{nla_len=8, nla_type=0x7}, "\xc0\xa8\x05\x71"], [{nla_len=8, nla_type=0x5}, "\xc0\xa8\x05\x01"], [{nla_len=8, nla_type=0x4}, 2]]], [{nlmsg_len=68, nlmsg_type=0x18, nlmsg_flags=0x22, nlmsg_seq=1714932829, nlmsg_pid=415159}, {rtm_family=0x2, rtm_dst_len=0, rtm_src_len=0, rtm_tos=0, rtm_table=0xfe, rtm_protocol=0x10, rtm_scope=0, rtm_type=0x1, rtm_flags=0}, [[{nla_len=8, nla_type=0xf}, 0xfe], [{nla_len=8, nla_type=0x6}, 600], [{nla_len=8, nla_type=0x7}, "\xc0\xa8\x05\x75"], [{nla_len=8, nla_type=0x5}, "\xc0\xa8\x05\x01"], [{nla_len=8, nla_type=0x4}, 4]]], [{nlmsg_len=60, nlmsg_type=0x18, nlmsg_flags=0x22, nlmsg_seq=1714932829, nlmsg_pid=415159}, {rtm_family=0x2, rtm_dst_len=16, rtm_src_len=0, rtm_tos=0, rtm_table=0xfe, rtm_protocol=0x2, rtm_scope=0xfd, rtm_type=0x1, rtm_flags=0}, [[{nla_len=8, nla_type=0xf}, 0xfe], [{nla_len=8, nla_type=0x1}, "\xac\x11\x00\x00"], [{nla_len=8, nla_type=0x7}, "\xac\x11\x00\x01"], [{nla_len=8, nla_type=0x4}, 5]]], [{nlmsg_len=60, nlmsg_type=0x18, nlmsg_flags=0x22, nlmsg_seq=1714932829, nlmsg_pid=415159}, {rtm_family=0x2, rtm_dst_len=16, rtm_src_len=0, rtm_tos=0, rtm_table=0xfe, rtm_protocol=0x2, rtm_scope=0xfd, rtm_type=0x1, rtm_flags=0x10}, [[{nla_len=8, nla_type=0xf}, 0xfe], [{nla_len=8, nla_type=0x1}, "\xac\x12\x00\x00"], [{nla_len=8, nla_type=0x7}, "\xac\x12\x00\x01"], [{nla_len=8, nla_type=0x4}, 6]]], [{nlmsg_len=68, nlmsg_type=0x18, nlmsg_flags=0x22, nlmsg_seq=1714932829, nlmsg_pid=415159}, {rtm_family=0x2, rtm_dst_len=24, rtm_src_len=0, rtm_tos=0, rtm_table=0xfe, rtm_protocol=0x2, rtm_scope=0xfd, rtm_type=0x1, rtm_flags=0}, [[{nla_len=8, nla_type=0xf}, 0xfe], [{nla_len=8, nla_type=0x1}, "\xc0\xa8\x05\x00"], [{nla_len=8, nla_type=0x6}, 100], [{nla_len=8, nla_type=0x7}, "\xc0\xa8\x05\x71"], [{nla_len=8, nla_type=0x4}, 2]]], [{nlmsg_len=68, nlmsg_type=0x18, nlmsg_flags=0x22, nlmsg_seq=1714932829, nlmsg_pid=415159}, {rtm_family=0x2, rtm_dst_len=24, rtm_src_len=0, rtm_tos=0, rtm_table=0xfe, rtm_protocol=0x2, rtm_scope=0xfd, rtm_type=0x1, rtm_flags=0}, [[{nla_len=8, nla_type=0xf}, 0xfe], [{nla_len=8, nla_type=0x1}, "\xc0\xa8\x05\x00"], [{nla_len=8, nla_type=0x6}, 600], [{nla_len=8, nla_type=0x7}, "\xc0\xa8\x05\x75"], [{nla_len=8, nla_type=0x4}, 4]]]], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 392
message: "44000000180022005dcc3766b755060002000000fe1000010000000008000f00fe000000080006006400000008000700c0a8057108000500c0a80501080004000200000044000000180022005dcc3766b755060002000000fe1000010000000008000f00fe000000080006005802000008000700c0a8057508000500c0a8050108000400040000003c000000180022005dcc3766b755060002100000fe02fd010000000008000f00fe00000008000100ac11000008000700ac11000108000400050000003c000000180022005dcc3766b755060002100000fe02fd011000000008000f00fe00000008000100ac12000008000700ac120001080004000600000044000000180022005dcc3766b755060002180000fe02fd010000000008000f00fe00000008000100c0a80500080006006400000008000700c0a80571080004000200000044000000180022005dcc3766b755060002180000fe02fd010000000008000f00fe00000008000100c0a80500080006005802000008000700c0a805750800040004000000"
- op: sendmsg 4
strace-parse: sendmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=40, nlmsg_type=0x12, nlmsg_flags=0x1, nlmsg_seq=1714932829, nlmsg_pid=0}, {ifi_family=0, ifi_type=0, ifi_index=2, ifi_flags=0, ifi_change=0}, [{nla_len=8, nla_type=0x1d}, 0x9]], iov_len=40}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 40
message: "28000000120001005dcc3766000000000000000002000000000000000000000008001d0009000000"
- op: recvmsg 4
strace-parse: recvmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=0x20}, 0x22) = 1100
- op: recvmsg 4
strace-parse: recvmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=1100, nlmsg_type=0x10, nlmsg_flags=0, nlmsg_seq=1714932829, nlmsg_pid=-443333671}, {ifi_family=0, ifi_type=0x1, ifi_index=2, ifi_flags=0x11043, ifi_change=0}, [[{nla_len=9, nla_type=0x3}, "\x65\x6e\x6f\x31\x00"...], [{nla_len=8, nla_type=0xd}, 1000], [{nla_len=5, nla_type=0x10}, 6], [{nla_len=5, nla_type=0x11}, 0], [{nla_len=8, nla_type=0x4}, 1500], [{nla_len=8, nla_type=0x32}, 68], [{nla_len=8, nla_type=0x33}, 9216], [{nla_len=8, nla_type=0x1b}, 0], [{nla_len=8, nla_type=0x1e}, 0], [{nla_len=8, nla_type=0x3d}, 0], [{nla_len=8, nla_type=0x1f}, 4], [{nla_len=8, nla_type=0x28}, 65535], [{nla_len=8, nla_type=0x29}, 65536], [{nla_len=8, nla_type=0x3a}, 65536], [{nla_len=8, nla_type=0x3f}, 65536], [{nla_len=8, nla_type=0x40}, 65536], [{nla_len=8, nla_type=0x3b}, 65536], [{nla_len=8, nla_type=0x3c}, 65535], [{nla_len=8, nla_type=0x20}, 4], [{nla_len=5, nla_type=0x21}, 1], [{nla_len=7, nla_type=0x6}, "\x6d\x71\x00"...], [{nla_len=8, nla_type=0x23}, 2], [{nla_len=8, nla_type=0x2f}, 1], [{nla_len=8, nla_type=0x30}, 1], [{nla_len=5, nla_type=0x27}, 0], [{nla_len=36, nla_type=0xe}, {mem_start=0x80700000, mem_end=0x807fffff, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=10, nla_type=0x1}, "\x58\x11\x22\xc2\xfb\x79"], [{nla_len=10, nla_type=0x2}, "\xff\xff\xff\xff\xff\xff"], [{nla_len=204, nla_type=0x17}, {rx_packets=1374965, tx_packets=1136402, rx_bytes=859433478, tx_bytes=459998314, rx_errors=0, tx_errors=0, rx_dropped=22, tx_dropped=0, multicast=87734, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=26169}], [{nla_len=100, nla_type=0x7}, {rx_packets=1374965, tx_packets=1136402, rx_bytes=859433478, tx_bytes=459998314, rx_errors=0, tx_errors=0, rx_dropped=22, tx_dropped=0, multicast=87734, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=8, nla_type=0x15}, 0], [{nla_len=12, nla_type=0x2b}, [{nla_len=5, nla_type=0x2}, 0]], [{nla_len=10, nla_type=0x36}, "\x58\x11\x22\xc2\xfb\x79"], [{nla_len=416, nla_type=0x1a}, [[{nla_len=140, nla_type=0x2}, [{nla_len=136, nla_type=0x1}, [[0]=1, [1]=0, [2]=0, [3]=1, [4]=1, [5]=1, [6]=1, [7]=2, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=0, [16]=0, [17]=0, [18]=0, [19]=1, [20]=0, [21]=0, [22]=0, [23]=0, [24]=0, [25]=0, [26]=10000, [27]=1000, [28]=0, [29]=0, [30]=0, [31]=0, [32]=1]]], [{nla_len=272, nla_type=0xa}, [[{nla_len=8, nla_type=0x1}, 0x80000000], [{nla_len=20, nla_type=0x5}, {max_reasm_len=65535, tstamp=1090, reachable_time=35270, retrans_time=1000}], [{nla_len=240, nla_type=0x2}, [[0]=0, [1]=64, [2]=1500, [3]=0, [4]=1, [5]=1, [6]=1, [7]=-1, [8]=4000, [9]=1000, [10]=0, [11]=604800, [12]=86400, [13]=3, [14]=600, [15]=16, [16]=0, [17]=1, [18]=1, [19]=1, [20]=60000, [21]=0, [22]=0, [23]=0, [24]=0, [25]=0, [26]=0, [27]=1, [28]=0, [29]=0, [30]=10000, [31]=1000, [32]=1, [33]=0, [34]=0, [35]=1, [36]=0, [37]=0, [38]=1, [39]=0, [40]=0, [41]=0, [42]=0, [43]=3600000, [44]=0, [45]=0, [46]=1, [47]=1, [48]=0, [49]=0, [50]=0, [51]=0, [52]=1024, [53]=0, [54]=65535, [55]=-1, [56]=1, [57]=0, [58]=0]]]]]], [{nla_len=16, nla_type=0x8000|0x34}, [{nla_len=11, nla_type=0x35}, "\x65\x6e\x70\x39\x73\x30\x00"...]], [{nla_len=17, nla_type=0x38}, "\x30\x30\x30\x30\x3a\x30\x39\x3a\x30\x30\x2e\x30\x00"...], [{nla_len=8, nla_type=0x39}, "\x70\x63\x69\x00"...], {nla_len=4, nla_type=0x8000|0x3e}, {nla_len=4, nla_type=0x8000|0x41}]], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1100
message: "4c040000100000005dcc3766d94393e50000010002000000431001000000000009000300656e6f310000000008000d00e80300000500100006000000050011000000000008000400dc0500000800320044000000080033000024000008001b000000000008001e000000000008003d000000000008001f000400000008002800ffff0000080029000000010008003a000000010008003f0000000100080040000000010008003b000000010008003c00ffff000008002000040000000500210001000000070006006d710000080023000200000008002f00010000000800300001000000050027000000000024000e000000708000000000ffff7f8000000000000000000000000000000000000000000a000100581122c2fb7900000a000200ffffffffffff0000cc001700f5fa140000000000125711000000000006ea3933000000006a046b1b000000000000000000000000000000000000000016000000000000000000000000000000b656010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000396600000000000064000700f5fa14001257110006ea39336a046b1b00000000000000001600000000000000b656010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008001500000000000c002b0005000200000000000a003600581122c2fb790000a0011a008c00020088000100010000000000000000000000010000000100000001000000010000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000010270000e8030000000000000000000000000000000000000100000010010a00080001000000008014000500ffff000042040000c6890000e8030000f00002000000000040000000dc05000000000000010000000100000001000000ffffffffa00f0000e803000000000000803a0900805101000300000058020000100000000000000001000000010000000100000060ea000000000000000000000000000000000000000000000000000001000000000000000000000010270000e8030000010000000000000000000000010000000000000000000000010000000000000000000000000000000000000080ee360000000000000000000100000001000000000000000000000000000000000000000004000000000000ffff0000ffffffff010000000000000000000000100034800b003500656e70397330000011003800303030303a30393a30302e3000000000080039007063690004003e8004004180"
- op: sendmsg 4
strace-parse: sendmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=40, nlmsg_type=0x12, nlmsg_flags=0x1, nlmsg_seq=1714932829, nlmsg_pid=0}, {ifi_family=0, ifi_type=0, ifi_index=4, ifi_flags=0, ifi_change=0}, [{nla_len=8, nla_type=0x1d}, 0x9]], iov_len=40}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 40
message: "28000000120001005dcc3766000000000000000004000000000000000000000008001d0009000000"
- op: recvmsg 4
strace-parse: recvmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=0x20}, 0x22) = 1088
- op: recvmsg 4
strace-parse: recvmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=1088, nlmsg_type=0x10, nlmsg_flags=0, nlmsg_seq=1714932829, nlmsg_pid=-56398300}, {ifi_family=0, ifi_type=0x1, ifi_index=4, ifi_flags=0x11043, ifi_change=0}, [[{nla_len=11, nla_type=0x3}, "\x77\x6c\x70\x38\x73\x30\x00"...], [{nla_len=8, nla_type=0xd}, 1000], [{nla_len=5, nla_type=0x10}, 6], [{nla_len=5, nla_type=0x11}, 1], [{nla_len=8, nla_type=0x4}, 1500], [{nla_len=8, nla_type=0x32}, 256], [{nla_len=8, nla_type=0x33}, 2304], [{nla_len=8, nla_type=0x1b}, 0], [{nla_len=8, nla_type=0x1e}, 0], [{nla_len=8, nla_type=0x3d}, 0], [{nla_len=8, nla_type=0x1f}, 1], [{nla_len=8, nla_type=0x28}, 65535], [{nla_len=8, nla_type=0x29}, 65536], [{nla_len=8, nla_type=0x3a}, 65536], [{nla_len=8, nla_type=0x3f}, 65536], [{nla_len=8, nla_type=0x40}, 65536], [{nla_len=8, nla_type=0x3b}, 65536], [{nla_len=8, nla_type=0x3c}, 65535], [{nla_len=8, nla_type=0x20}, 1], [{nla_len=5, nla_type=0x21}, 1], [{nla_len=12, nla_type=0x6}, "\x6e\x6f\x71\x75\x65\x75\x65\x00"...], [{nla_len=8, nla_type=0x23}, 2], [{nla_len=8, nla_type=0x2f}, 1], [{nla_len=8, nla_type=0x30}, 1], [{nla_len=5, nla_type=0x27}, 0], [{nla_len=36, nla_type=0xe}, {mem_start=0, mem_end=0, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=10, nla_type=0x1}, "\xf0\x57\xa6\x9f\xd7\xdd"], [{nla_len=10, nla_type=0x2}, "\xff\xff\xff\xff\xff\xff"], [{nla_len=204, nla_type=0x17}, {rx_packets=226500, tx_packets=11389, rx_bytes=78139387, tx_bytes=1721977, rx_errors=0, tx_errors=0, rx_dropped=18, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=0}], [{nla_len=100, nla_type=0x7}, {rx_packets=226500, tx_packets=11389, rx_bytes=78139387, tx_bytes=1721977, rx_errors=0, tx_errors=0, rx_dropped=18, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=8, nla_type=0x15}, 0], [{nla_len=12, nla_type=0x2b}, [{nla_len=5, nla_type=0x2}, 0]], [{nla_len=10, nla_type=0x36}, "\xf0\x57\xa6\x9f\xd7\xdd"], [{nla_len=416, nla_type=0x1a}, [[{nla_len=140, nla_type=0x2}, [{nla_len=136, nla_type=0x1}, [[0]=1, [1]=0, [2]=0, [3]=1, [4]=1, [5]=1, [6]=1, [7]=2, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=0, [16]=0, [17]=0, [18]=0, [19]=1, [20]=0, [21]=0, [22]=0, [23]=0, [24]=0, [25]=0, [26]=10000, [27]=1000, [28]=0, [29]=0, [30]=0, [31]=0, [32]=1]]], [{nla_len=272, nla_type=0xa}, [[{nla_len=8, nla_type=0x1}, 0x80000000], [{nla_len=20, nla_type=0x5}, {max_reasm_len=65535, tstamp=1226, reachable_time=37250, retrans_time=1000}], [{nla_len=240, nla_type=0x2}, [[0]=0, [1]=64, [2]=1500, [3]=0, [4]=1, [5]=1, [6]=1, [7]=-1, [8]=4000, [9]=1000, [10]=0, [11]=604800, [12]=86400, [13]=3, [14]=600, [15]=16, [16]=0, [17]=1, [18]=1, [19]=1, [20]=60000, [21]=0, [22]=0, [23]=0, [24]=0, [25]=0, [26]=0, [27]=1, [28]=0, [29]=0, [30]=10000, [31]=1000, [32]=1, [33]=0, [34]=0, [35]=1, [36]=0, [37]=0, [38]=1, [39]=0, [40]=0, [41]=0, [42]=0, [43]=3600000, [44]=0, [45]=0, [46]=1, [47]=1, [48]=0, [49]=0, [50]=0, [51]=0, [52]=1024, [53]=0, [54]=65535, [55]=-1, [56]=1, [57]=0, [58]=0]]]]]], [{nla_len=17, nla_type=0x38}, "\x30\x30\x30\x30\x3a\x30\x38\x3a\x30\x30\x2e\x30\x00"...], [{nla_len=8, nla_type=0x39}, "\x70\x63\x69\x00"...], {nla_len=4, nla_type=0x8000|0x3e}, {nla_len=4, nla_type=0x8000|0x41}]], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1088
message: "40040000100000005dcc3766246ea3fc000001000400000043100100000000000b000300776c70387330000008000d00e80300000500100006000000050011000100000008000400dc0500000800320000010000080033000009000008001b000000000008001e000000000008003d000000000008001f000100000008002800ffff0000080029000000010008003a000000010008003f0000000100080040000000010008003b000000010008003c00ffff0000080020000100000005002100010000000c0006006e6f717565756500080023000200000008002f00010000000800300001000000050027000000000024000e0000000000000000000000000000000000000000000000000000000000000000000a000100f057a69fd7dd00000a000200ffffffffffff0000cc001700c4740300000000007d2c000000000000fb4fa8040000000079461a000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000700c47403007d2c0000fb4fa80479461a00000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008001500000000000c002b0005000200000000000a003600f057a69fd7dd0000a0011a008c00020088000100010000000000000000000000010000000100000001000000010000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000010270000e8030000000000000000000000000000000000000100000010010a00080001000000008014000500ffff0000ca04000082910000e8030000f00002000000000040000000dc05000000000000010000000100000001000000ffffffffa00f0000e803000000000000803a0900805101000300000058020000100000000000000001000000010000000100000060ea000000000000000000000000000000000000000000000000000001000000000000000000000010270000e8030000010000000000000000000000010000000000000000000000010000000000000000000000000000000000000080ee360000000000000000000100000001000000000000000000000000000000000000000004000000000000ffff0000ffffffff01000000000000000000000011003800303030303a30383a30302e3000000000080039007063690004003e8004004180"
- op: sendmsg 4
strace-parse: sendmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=40, nlmsg_type=0x12, nlmsg_flags=0x1, nlmsg_seq=1714932829, nlmsg_pid=0}, {ifi_family=0, ifi_type=0, ifi_index=5, ifi_flags=0, ifi_change=0}, [{nla_len=8, nla_type=0x1d}, 0x9]], iov_len=40}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 40
message: "28000000120001005dcc3766000000000000000005000000000000000000000008001d0009000000"
- op: recvmsg 4
strace-parse: recvmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=0x20}, 0x22) = 1484
- op: recvmsg 4
strace-parse: recvmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=1484, nlmsg_type=0x10, nlmsg_flags=0, nlmsg_seq=1714932829, nlmsg_pid=-1531022173}, {ifi_family=0, ifi_type=0x1, ifi_index=5, ifi_flags=0x11043, ifi_change=0}, [[{nla_len=12, nla_type=0x3}, "\x64\x6f\x63\x6b\x65\x72\x30\x00"...], [{nla_len=8, nla_type=0xd}, 0], [{nla_len=5, nla_type=0x10}, 6], [{nla_len=5, nla_type=0x11}, 0], [{nla_len=8, nla_type=0x4}, 1500], [{nla_len=8, nla_type=0x32}, 68], [{nla_len=8, nla_type=0x33}, 65535], [{nla_len=8, nla_type=0x1b}, 0], [{nla_len=8, nla_type=0x1e}, 0], [{nla_len=8, nla_type=0x3d}, 0], [{nla_len=8, nla_type=0x1f}, 1], [{nla_len=8, nla_type=0x28}, 65535], [{nla_len=8, nla_type=0x29}, 65536], [{nla_len=8, nla_type=0x3a}, 65536], [{nla_len=8, nla_type=0x3f}, 65536], [{nla_len=8, nla_type=0x40}, 65536], [{nla_len=8, nla_type=0x3b}, 524280], [{nla_len=8, nla_type=0x3c}, 65535], [{nla_len=8, nla_type=0x20}, 1], [{nla_len=5, nla_type=0x21}, 1], [{nla_len=12, nla_type=0x6}, "\x6e\x6f\x71\x75\x65\x75\x65\x00"...], [{nla_len=8, nla_type=0x23}, 2], [{nla_len=8, nla_type=0x2f}, 1], [{nla_len=8, nla_type=0x30}, 1], [{nla_len=5, nla_type=0x27}, 0], [{nla_len=36, nla_type=0xe}, {mem_start=0, mem_end=0, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=10, nla_type=0x1}, "\x02\x42\xd2\x30\x4b\x66"], [{nla_len=10, nla_type=0x2}, "\xff\xff\xff\xff\xff\xff"], [{nla_len=204, nla_type=0x17}, {rx_packets=0, tx_packets=3359, rx_bytes=0, tx_bytes=718616, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=0}], [{nla_len=100, nla_type=0x7}, {rx_packets=0, tx_packets=3359, rx_bytes=0, tx_bytes=718616, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=12, nla_type=0x2b}, [{nla_len=5, nla_type=0x2}, 0]], [{nla_len=444, nla_type=0x12}, [[{nla_len=11, nla_type=0x1}, "\x62\x72\x69\x64\x67\x65"], [{nla_len=428, nla_type=0x2}, [[{nla_len=12, nla_type=0x10}, 0], [{nla_len=12, nla_type=0x11}, 0], [{nla_len=12, nla_type=0x12}, 0], [{nla_len=12, nla_type=0x13}, 8487], [{nla_len=8, nla_type=0x1}, 1499], [{nla_len=8, nla_type=0x2}, 199], [{nla_len=8, nla_type=0x3}, 1999], [{nla_len=8, nla_type=0x4}, 29999], [{nla_len=8, nla_type=0x5}, 0], [{nla_len=6, nla_type=0x6}, 32768], [{nla_len=5, nla_type=0x7}, 0], [{nla_len=6, nla_type=0x9}, 0], [{nla_len=12, nla_type=0xb}, {prio=[128, 0], addr="\x02\x42\xd2\x30\x4b\x66"}], [{nla_len=12, nla_type=0xa}, {prio=[128, 0], addr="\x02\x42\xd2\x30\x4b\x66"}], [{nla_len=6, nla_type=0xc}, 0], [{nla_len=8, nla_type=0xd}, 0], [{nla_len=5, nla_type=0xe}, 0], [{nla_len=5, nla_type=0xf}, 0], [{nla_len=10, nla_type=0x14}, "\x01\x80\xc2\x00\x00\x00"], [{nla_len=12, nla_type=0x2e}, {optval=0, optmask=0x7}], [{nla_len=8, nla_type=0x30}, "\x00\x00\x00\x00"], [{nla_len=8, nla_type=0x31}, "\x00\x00\x00\x00"], [{nla_len=6, nla_type=0x8}, htons(0x8100)], [{nla_len=6, nla_type=0x27}, 1], [{nla_len=5, nla_type=0x29}, 0], [{nla_len=5, nla_type=0x2d}, 0], [{nla_len=5, nla_type=0x16}, 1], [{nla_len=5, nla_type=0x17}, 1], [{nla_len=5, nla_type=0x18}, 0], [{nla_len=5, nla_type=0x19}, 0], [{nla_len=5, nla_type=0x2a}, 0], [{nla_len=8, nla_type=0x1a}, 16], [{nla_len=8, nla_type=0x1b}, 4096], [{nla_len=8, nla_type=0x1c}, 2], [{nla_len=8, nla_type=0x1d}, 2], [{nla_len=5, nla_type=0x2b}, 2], [{nla_len=5, nla_type=0x2c}, 1], [{nla_len=12, nla_type=0x1e}, 99], [{nla_len=12, nla_type=0x1f}, 25999], [{nla_len=12, nla_type=0x20}, 25499], [{nla_len=12, nla_type=0x21}, 12499], [{nla_len=12, nla_type=0x22}, 999], [{nla_len=12, nla_type=0x23}, 3124], [{nla_len=5, nla_type=0x24}, 0], [{nla_len=5, nla_type=0x25}, 0], [{nla_len=5, nla_type=0x26}, 0]]]]], [{nla_len=416, nla_type=0x1a}, [[{nla_len=140, nla_type=0x2}, [{nla_len=136, nla_type=0x1}, [[0]=1, [1]=0, [2]=0, [3]=1, [4]=1, [5]=1, [6]=1, [7]=2, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=0, [16]=0, [17]=0, [18]=0, [19]=1, [20]=0, [21]=0, [22]=0, [23]=0, [24]=0, [25]=0, [26]=10000, [27]=1000, [28]=0, [29]=0, [30]=0, [31]=0, [32]=1]]], [{nla_len=272, nla_type=0xa}, [[{nla_len=8, nla_type=0x1}, 0x80000000], [{nla_len=20, nla_type=0x5}, {max_reasm_len=65535, tstamp=1883, reachable_time=29767, retrans_time=1000}], [{nla_len=240, nla_type=0x2}, [[0]=0, [1]=64, [2]=1500, [3]=0, [4]=1, [5]=1, [6]=1, [7]=-1, [8]=4000, [9]=1000, [10]=0, [11]=604800, [12]=86400, [13]=3, [14]=600, [15]=16, [16]=0, [17]=1, [18]=1, [19]=1, [20]=60000, [21]=0, [22]=0, [23]=0, [24]=0, [25]=0, [26]=0, [27]=1, [28]=0, [29]=0, [30]=10000, [31]=1000, [32]=1, [33]=0, [34]=0, [35]=1, [36]=0, [37]=0, [38]=1, [39]=0, [40]=0, [41]=0, [42]=0, [43]=3600000, [44]=0, [45]=0, [46]=1, [47]=0, [48]=0, [49]=0, [50]=0, [51]=0, [52]=1024, [53]=0, [54]=65535, [55]=-1, [56]=1, [57]=0, [58]=0]]]]]], {nla_len=4, nla_type=0x8000|0x3e}, {nla_len=4, nla_type=0x8000|0x41}]], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1484
message: "cc050000100000005dcc3766a374bea4000001000500000043100100000000000c000300646f636b6572300008000d00000000000500100006000000050011000000000008000400dc050000080032004400000008003300ffff000008001b000000000008001e000000000008003d000000000008001f000100000008002800ffff0000080029000000010008003a000000010008003f0000000100080040000000010008003b00f8ff070008003c00ffff0000080020000100000005002100010000000c0006006e6f717565756500080023000200000008002f00010000000800300001000000050027000000000024000e0000000000000000000000000000000000000000000000000000000000000000000a0001000242d2304b6600000a000200ffffffffffff0000cc00170000000000000000001f0d000000000000000000000000000018f70a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000700000000001f0d00000000000018f70a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c002b000500020000000000bc0112000b0001006272696467650000ac0102000c00100000000000000000000c00110000000000000000000c00120000000000000000000c001300272100000000000008000100db05000008000200c700000008000300cf070000080004002f75000008000500000000000600060000800000050007000000000006000900000000000c000b0080000242d2304b660c000a0080000242d2304b6606000c000000000008000d000000000005000e000000000005000f00000000000a0014000180c200000000000c002e0000000000070000000800300000000000080031000000000006000800810000000600270001000000050029000000000005002d0000000000050016000100000005001700010000000500180000000000050019000000000005002a000000000008001a001000000008001b000010000008001c000200000008001d000200000005002b000200000005002c00010000000c001e0063000000000000000c001f008f650000000000000c0020009b630000000000000c002100d3300000000000000c002200e7030000000000000c002300340c000000000000050024000000000005002500000000000500260000000000a0011a008c00020088000100010000000000000000000000010000000100000001000000010000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000010270000e8030000000000000000000000000000000000000100000010010a00080001000000008014000500ffff00005b07000047740000e8030000f00002000000000040000000dc05000000000000010000000100000001000000ffffffffa00f0000e803000000000000803a0900805101000300000058020000100000000000000001000000010000000100000060ea000000000000000000000000000000000000000000000000000001000000000000000000000010270000e8030000010000000000000000000000010000000000000000000000010000000000000000000000000000000000000080ee360000000000000000000100000000000000000000000000000000000000000000000004000000000000ffff0000ffffffff01000000000000000000000004003e8004004180"
- op: sendmsg 4
strace-parse: sendmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=40, nlmsg_type=0x12, nlmsg_flags=0x1, nlmsg_seq=1714932829, nlmsg_pid=0}, {ifi_family=0, ifi_type=0, ifi_index=6, ifi_flags=0, ifi_change=0}, [{nla_len=8, nla_type=0x1d}, 0x9]], iov_len=40}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 40
message: "28000000120001005dcc3766000000000000000006000000000000000000000008001d0009000000"
- op: recvmsg 4
strace-parse: recvmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=0x20}, 0x22) = 1492
- op: recvmsg 4
strace-parse: recvmsg(4, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=1492, nlmsg_type=0x10, nlmsg_flags=0, nlmsg_seq=1714932829, nlmsg_pid=-554340067}, {ifi_family=0, ifi_type=0x1, ifi_index=6, ifi_flags=0x1003, ifi_change=0}, [[{nla_len=20, nla_type=0x3}, "\x62\x72\x2d\x65\x35\x33\x64\x35\x35\x34\x63\x65\x66\x34\x33\x00"...], [{nla_len=8, nla_type=0xd}, 0], [{nla_len=5, nla_type=0x10}, 2], [{nla_len=5, nla_type=0x11}, 0], [{nla_len=8, nla_type=0x4}, 1500], [{nla_len=8, nla_type=0x32}, 68], [{nla_len=8, nla_type=0x33}, 65535], [{nla_len=8, nla_type=0x1b}, 0], [{nla_len=8, nla_type=0x1e}, 0], [{nla_len=8, nla_type=0x3d}, 0], [{nla_len=8, nla_type=0x1f}, 1], [{nla_len=8, nla_type=0x28}, 65535], [{nla_len=8, nla_type=0x29}, 65536], [{nla_len=8, nla_type=0x3a}, 65536], [{nla_len=8, nla_type=0x3f}, 65536], [{nla_len=8, nla_type=0x40}, 65536], [{nla_len=8, nla_type=0x3b}, 65536], [{nla_len=8, nla_type=0x3c}, 65535], [{nla_len=8, nla_type=0x20}, 1], [{nla_len=5, nla_type=0x21}, 0], [{nla_len=12, nla_type=0x6}, "\x6e\x6f\x71\x75\x65\x75\x65\x00"...], [{nla_len=8, nla_type=0x23}, 1], [{nla_len=8, nla_type=0x2f}, 0], [{nla_len=8, nla_type=0x30}, 1], [{nla_len=5, nla_type=0x27}, 0], [{nla_len=36, nla_type=0xe}, {mem_start=0, mem_end=0, base_addr=0, irq=0, dma=0, port=0}], [{nla_len=10, nla_type=0x1}, "\x02\x42\x0d\xa2\x61\x7c"], [{nla_len=10, nla_type=0x2}, "\xff\xff\xff\xff\xff\xff"], [{nla_len=204, nla_type=0x17}, {rx_packets=0, tx_packets=0, rx_bytes=0, tx_bytes=0, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0, rx_otherhost_dropped=0}], [{nla_len=100, nla_type=0x7}, {rx_packets=0, tx_packets=0, rx_bytes=0, tx_bytes=0, rx_errors=0, tx_errors=0, rx_dropped=0, tx_dropped=0, multicast=0, collisions=0, rx_length_errors=0, rx_over_errors=0, rx_crc_errors=0, rx_frame_errors=0, rx_fifo_errors=0, rx_missed_errors=0, tx_aborted_errors=0, tx_carrier_errors=0, tx_fifo_errors=0, tx_heartbeat_errors=0, tx_window_errors=0, rx_compressed=0, tx_compressed=0, rx_nohandler=0}], [{nla_len=12, nla_type=0x2b}, [{nla_len=5, nla_type=0x2}, 0]], [{nla_len=444, nla_type=0x12}, [[{nla_len=11, nla_type=0x1}, "\x62\x72\x69\x64\x67\x65"], [{nla_len=428, nla_type=0x2}, [[{nla_len=12, nla_type=0x10}, 0], [{nla_len=12, nla_type=0x11}, 0], [{nla_len=12, nla_type=0x12}, 0], [{nla_len=12, nla_type=0x13}, 8487], [{nla_len=8, nla_type=0x1}, 1499], [{nla_len=8, nla_type=0x2}, 199], [{nla_len=8, nla_type=0x3}, 1999], [{nla_len=8, nla_type=0x4}, 29999], [{nla_len=8, nla_type=0x5}, 0], [{nla_len=6, nla_type=0x6}, 32768], [{nla_len=5, nla_type=0x7}, 0], [{nla_len=6, nla_type=0x9}, 0], [{nla_len=12, nla_type=0xb}, {prio=[128, 0], addr="\x02\x42\x0d\xa2\x61\x7c"}], [{nla_len=12, nla_type=0xa}, {prio=[128, 0], addr="\x02\x42\x0d\xa2\x61\x7c"}], [{nla_len=6, nla_type=0xc}, 0], [{nla_len=8, nla_type=0xd}, 0], [{nla_len=5, nla_type=0xe}, 0], [{nla_len=5, nla_type=0xf}, 0], [{nla_len=10, nla_type=0x14}, "\x01\x80\xc2\x00\x00\x00"], [{nla_len=12, nla_type=0x2e}, {optval=0, optmask=0x7}], [{nla_len=8, nla_type=0x30}, "\x00\x00\x00\x00"], [{nla_len=8, nla_type=0x31}, "\x00\x00\x00\x00"], [{nla_len=6, nla_type=0x8}, htons(0x8100)], [{nla_len=6, nla_type=0x27}, 1], [{nla_len=5, nla_type=0x29}, 0], [{nla_len=5, nla_type=0x2d}, 0], [{nla_len=5, nla_type=0x16}, 1], [{nla_len=5, nla_type=0x17}, 1], [{nla_len=5, nla_type=0x18}, 0], [{nla_len=5, nla_type=0x19}, 0], [{nla_len=5, nla_type=0x2a}, 0], [{nla_len=8, nla_type=0x1a}, 16], [{nla_len=8, nla_type=0x1b}, 4096], [{nla_len=8, nla_type=0x1c}, 2], [{nla_len=8, nla_type=0x1d}, 2], [{nla_len=5, nla_type=0x2b}, 2], [{nla_len=5, nla_type=0x2c}, 1], [{nla_len=12, nla_type=0x1e}, 99], [{nla_len=12, nla_type=0x1f}, 25999], [{nla_len=12, nla_type=0x20}, 25499], [{nla_len=12, nla_type=0x21}, 12499], [{nla_len=12, nla_type=0x22}, 999], [{nla_len=12, nla_type=0x23}, 3124], [{nla_len=5, nla_type=0x24}, 0], [{nla_len=5, nla_type=0x25}, 0], [{nla_len=5, nla_type=0x26}, 0]]]]], [{nla_len=416, nla_type=0x1a}, [[{nla_len=140, nla_type=0x2}, [{nla_len=136, nla_type=0x1}, [[0]=1, [1]=0, [2]=0, [3]=1, [4]=1, [5]=1, [6]=1, [7]=2, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=0, [16]=0, [17]=0, [18]=0, [19]=1, [20]=0, [21]=0, [22]=0, [23]=0, [24]=0, [25]=0, [26]=10000, [27]=1000, [28]=0, [29]=0, [30]=0, [31]=0, [32]=1]]], [{nla_len=272, nla_type=0xa}, [[{nla_len=8, nla_type=0x1}, 0], [{nla_len=20, nla_type=0x5}, {max_reasm_len=65535, tstamp=1857, reachable_time=21254, retrans_time=1000}], [{nla_len=240, nla_type=0x2}, [[0]=0, [1]=64, [2]=1500, [3]=0, [4]=1, [5]=1, [6]=1, [7]=-1, [8]=4000, [9]=1000, [10]=0, [11]=604800, [12]=86400, [13]=3, [14]=600, [15]=16, [16]=0, [17]=1, [18]=1, [19]=1, [20]=60000, [21]=0, [22]=0, [23]=0, [24]=0, [25]=0, [26]=0, [27]=1, [28]=0, [29]=0, [30]=10000, [31]=1000, [32]=1, [33]=0, [34]=0, [35]=1, [36]=0, [37]=0, [38]=1, [39]=0, [40]=0, [41]=0, [42]=0, [43]=3600000, [44]=0, [45]=0, [46]=1, [47]=0, [48]=0, [49]=0, [50]=0, [51]=0, [52]=1024, [53]=0, [54]=65535, [55]=-1, [56]=1, [57]=0, [58]=0]]]]]], {nla_len=4, nla_type=0x8000|0x3e}, {nla_len=4, nla_type=0x8000|0x41}]], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1492
message: "d4050000100000005dcc37661d71f5de000001000600000003100000000000001400030062722d6535336435353463656634330008000d00000000000500100002000000050011000000000008000400dc050000080032004400000008003300ffff000008001b000000000008001e000000000008003d000000000008001f000100000008002800ffff0000080029000000010008003a000000010008003f0000000100080040000000010008003b000000010008003c00ffff0000080020000100000005002100000000000c0006006e6f717565756500080023000100000008002f00000000000800300001000000050027000000000024000e0000000000000000000000000000000000000000000000000000000000000000000a00010002420da2617c00000a000200ffffffffffff0000cc0017000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c002b000500020000000000bc0112000b0001006272696467650000ac0102000c00100000000000000000000c00110000000000000000000c00120000000000000000000c001300272100000000000008000100db05000008000200c700000008000300cf070000080004002f75000008000500000000000600060000800000050007000000000006000900000000000c000b00800002420da2617c0c000a00800002420da2617c06000c000000000008000d000000000005000e000000000005000f00000000000a0014000180c200000000000c002e0000000000070000000800300000000000080031000000000006000800810000000600270001000000050029000000000005002d0000000000050016000100000005001700010000000500180000000000050019000000000005002a000000000008001a001000000008001b000010000008001c000200000008001d000200000005002b000200000005002c00010000000c001e0063000000000000000c001f008f650000000000000c0020009b630000000000000c002100d3300000000000000c002200e7030000000000000c002300340c000000000000050024000000000005002500000000000500260000000000a0011a008c00020088000100010000000000000000000000010000000100000001000000010000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000010270000e8030000000000000000000000000000000000000100000010010a00080001000000000014000500ffff00004107000006530000e8030000f00002000000000040000000dc05000000000000010000000100000001000000ffffffffa00f0000e803000000000000803a0900805101000300000058020000100000000000000001000000010000000100000060ea000000000000000000000000000000000000000000000000000001000000000000000000000010270000e8030000010000000000000000000000010000000000000000000000010000000000000000000000000000000000000080ee360000000000000000000100000000000000000000000000000000000000000000000004000000000000ffff0000ffffffff01000000000000000000000004003e8004004180"
- op: recvmsg 3
strace-parse: recvmsg(3, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=NULL, iov_len=0}], msg_iovlen=1, msg_controllen=0, msg_flags=0x20}, 0x22) = 20
- op: recvmsg 3
strace-parse: recvmsg(3, {msg_name={sa_family=0x10, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=20, nlmsg_type=0x3, nlmsg_flags=0x22, nlmsg_seq=1714932829, nlmsg_pid=415159}, 0], iov_len=32768}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 20
message-hex: "14000000030022005dcc3766b755060000000000"
Testing strategy improvement ideas
I love that this library is sans-io, but it makes testing a bit tricky in that our reference implementations (i.e. the Linux Kernel and iproute2) don't play along.
The problems
The current testing strategy for this library relies on capturing netlink messages on nlmon interfaces.
While this is a fairly straightforward method, it has a few drawbacks:
Large testing scope:
Ideally, everything implementing the
Nlatrait would get its own set of tests, but this is very tricky with the current testing strategy of collecting reference messages.We could break each message down into individual
Nlas and test them separately, but this would require a large amount of manual work and is likely to be error-prone.As things stand, we have larger tests which examine entire messages.
These tests are very helpful, but they have also required me to spend several hours with a debugger trying to hunt down the exact source of the error when they fail.
An example of a scope issue I have faced is in testing the c-vlan key of flower for DRAFT: tc flower support #111.
Matching on c-vlan requires matching on s-vlan, which requires matching on the ethertype.
Thus, any test I write for c-vlan with this method inevitably drags in functionality for the test which would ideally be out of scope for that test.
Limited coverage and a lot of manual work:
I have been trying to write tests for DRAFT: tc flower support #111 but I am struggling to get good quality test coverage.
Composing an adequate number of test cases is proving to be taxing with this method.
Test opacity:
It is challenging to look at the hex dumps for the messages and correlate them with test failures.
In particular, I am often uncertain if the error I am seeing is due to a bug in the library or a bug in the test; I simply don't always know exactly what the message is saying in the first place.
Accounting for endianness issues with this method is tricky:
If the messages are captured on a little-endian machine, then the tests will fail on big-endian machines and vice versa; the hard-coded messages are simply incorrect on the opposite endianness architecture.
Accounting for endianness is especially important in that endianness is highly inconsistent in the context of netlink: it often swaps between network-endian and native-endian within the space of a single message.
Test failures on big-endian can be seen by running miri on their preferred big-endian target.
cargo +nightly miri test --target s390x-unknown-linux-gnuNoisy captures:
Doing a direct dump on a
nlmoninterface is often noisy.Many people use tools like systemd-networkd, NetworkManager, or some other network management daemon.
These daemons, along with tools like docker and kubernetes can generate a lot of noise on the
nlmoninterface which I need to sort through to find the messages I am interested in.This is both inconvenient and a potential waste of development time.
Are you really sure you got the message you wanted?
Ideas for improvement:
I have a few ideas for improving the testing strategy for this library.
Idea 1: (ab)use strace to capture netlink messages
This method doesn't address all the above concerns by any means, but it can make things a little easier in my experience.
I cooked up a quick and dirty proof-of-concept script to make strace do some of this work for us.
I don't suggest that we use this script as-is (it is quite hacky).
The goal of the script is to (ab)use strace and standard linux tools into spitting out a simple yaml file containing all sent and received netlink messages for a given command.
Here are the contents of
/tmp/trace.ymlafter running that script on my dev machine (basically, a netlink trace ofip route)In this case we see a "conversation" between the iproute2 and the kernel.
There are two netlink sockets open (file descriptors 3 and 4).
We can see both the raw hex of all messages and strace's interpretation of them.
Let me know if you like this concept.
If so, I will write up a proper version of it (i.e., not a quick bash script).
Likely I would use eBPF / Aya to do this properly.
This method could be integrated into the test suite at any level
I tend to think option 3 is a bad idea as it will inevitably lead to a lot of complexities and the hard requirement to run tests as root.
Things we could do with the
yamloutput:DefaultNla(i.e. that we actually can parse the whole conversation).Add tests for necessary (if not sufficient) conditions
I think we can agree that every
implofNla + Emittableshould have the property that it must be able to be emitted and then parsed back to the same structure you started with.For example, you can write tests like this
This property seems very powerful to me.
If you have a mismatch between your
emitandparsefunctions, you will likely catch it. IncludingMore, these tests
Nlabasis),I really like this method, and I am happy to write such tests, either by hand, or I can compose a proc macro we can use to generate such tests automatically.
Cooperation with pyroute2 or any of the go-netlink libraries
We are currently (and very reasonably) using iproute2 as a reference implementation, but there is no rule making iproute2 canonical.
If we can cooperate with the other libraries in this space we may be able to come up with a sort of "dictionary" of example netlink messages / nla segments which we could all use to test our libraries.
I am not certain about the feasibility of this idea, but I think it is worth considering.
Let me know what you think :)