Coder Social home page Coder Social logo

openvisualcloud / media-transport-library Goto Github PK

View Code? Open in Web Editor NEW
150.0 5.0 46.0 14.33 MB

A real-time media transport(DPDK, AF_XDP, RDMA) stack for both raw and compressed video based on COTS hardware.

License: BSD 3-Clause "New" or "Revised" License

C 78.00% Meson 0.97% Shell 0.83% Dockerfile 0.09% C++ 16.80% Makefile 0.03% Python 1.10% SWIG 0.01% Rust 2.02% DTrace 0.13%
dpdk st2110 video-production broadcast xdp udp media transport rdma

media-transport-library's People

Contributors

aaroncyew avatar awilczyns avatar c1zhang avatar changchingyew avatar corco avatar dependabot[bot] avatar frankdjx avatar gizahnl avatar gongxiao-intel avatar hickhackz avatar intelmark avatar jluii avatar jsunintel avatar mjende avatar prankurgit avatar qiang-han avatar qiaoliu78 avatar ricmli avatar sammirata avatar step-security-bot avatar sywangyi avatar wallace-lee avatar yanfengp avatar zhugaofx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

media-transport-library's Issues

Losing packets/frames with FFmpeg plugin

Context

Hi!

We would you like to use your library with ffmpeg plugin, but we noticed that there are a few frames drops in RX side.

We've tried to use different duration of videos: 5, 10, 30, 400 seconds and the amount of dropping frames was always around 3.
We have analyzed the frames that we're missing and it was the last frames from the sequence of a video.

Please find logs from TX and RX side below.

Thoughts on the problem

The issues is likely connected with finishing the session from TX/RX side and no proper flushing/burst packets from the buffers at the end of the session.

Possible workaround

Please be aware that this is not the perfect solution and we would like to get your expertise/thoughts on that.

As a workaround: tx_video_session_get / tx_video_session_put are called to get the number of session inflight packets and we are calling usleep untill all the inflight packets are sent.

We added a new function st_tx_wait_for_inbound in mtl_st20p_write_close to achieve this:

static int mtl_st20p_write_close(AVFormatContext* ctx) {
   dbg("%s(%d), start\n", __func__, s->idx);
   // Destroy tx session
   if (s->tx_handle) {
+    st_tx_wait_for_inbound(s->tx_handle->impl);
int st_tx_wait_for_inbound(struct mtl_main_impl* impl){
  struct mtl_sch_impl *sch;
  struct st_tx_video_sessions_mgr* tx_mgr;
  int ret;

  for (int sch_idx = 0; sch_idx < MT_MAX_SCH_NUM; sch_idx++) {
    sch = mt_sch_instance(impl, sch_idx);
    tx_mgr = &sch->tx_video_mgr;
    for (int j = 0; j < tx_mgr->max_idx; j++) {
      ret = st_tx_session_wait_for_inbound(tx_mgr, j);
      if(ret)
        return ret;
    }
  }
  return 0;
}
static int st_tx_session_wait_for_inbound(struct st_tx_video_sessions_mgr* tx_mgr,
                                           int sch_idx) {
  struct st_tx_video_session_impl* s = tx_video_session_get(tx_mgr, sch_idx);
  int num_port = s->ops.num_port;

  for (int i = 0; i < num_port; i++) {
    for (int j = 0; j < ST_TX_VIDEO_WAIT_FOR_INBOUND_RETRY; j++) {
      if (s->trs_inflight_num[i] || s->trs_inflight_num2[i]) {
        tx_video_session_put(tx_mgr, sch_idx);
        notice("%s(%d), Retry %d out of %d \n", __func__, sch_idx, j, ST_TX_VIDEO_WAIT_FOR_INBOUND_RETRY);
        usleep(10000);
        tx_video_session_get(tx_mgr, sch_idx);
      } else {
        tx_video_session_put(tx_mgr, sch_idx);
        break;
      }
    }
  }

  return 0;
}

Logs

FFmpeg st20 TX

Test-video is a 10 seconds video with 25 fps = 125 frames.

Command

ffmpeg -video_size 1920x1080 -f rawvideo -pix_fmt yuv422p10le -i test_video.yuv -filter:v fps=25 -p_port 0000:b1:00.1 -p_sip 192.168.96.3 -p_tx_ip 239.168.85.20 -udp_port 20000 -payload_type 112 -f mtl_st20p -

Output

[mtl_st20p @ 0x605ffa104c40] mtl_st20p_write_header(0), tx_handle 0x3202c07440
Output #0, mtl_st20p, to 'pipe:':
  Metadata:
    encoder         : Lavf60.16.100
  Stream #0:0: Video: rawvideo (Y3[10][10] / 0xA0A3359), yuv422p10le(progressive), 1920x1080, q=2-31, 1036800 kb/s, 25 fps, 25 tbn
    Metadata:
      encoder         : Lavc60.31.102 rawvideo
MTL: 2024-05-20 10:30:01, st20p_tx_free(0), start.56 bitrate=N/A speed=0.539x
MTL: 2024-05-20 10:30:01, st20_tx_free(0,0), start
MTL: 2024-05-20 10:30:01, TX_VIDEO_SESSION(0,0:st20p_ffmpge): fps 24.600933 frames 122 pkts 505218:0 inflight 30282:30305
MTL: 2024-05-20 10:30:01, TX_VIDEO_SESSION(0,0): throughput 1077.382235 Mb/s: 0.000000 Mb/s, cpu busy 0.358991
MTL: 2024-05-20 10:30:01, TX_VIDEO_SESSION(0,0): mismatch epoch troffset 1
MTL: 2024-05-20 10:30:01, TX_VIDEO_SESSION(0,0): epoch drop 1
MTL: 2024-05-20 10:30:01, TX_VIDEO_SESSION(0,0): busy as no ready frame from user 1
MTL: 2024-05-20 10:30:01, mt_ring_dequeue_clean, count 508 for ring TV_M0S0P0
MTL: 2024-05-20 10:30:01, mt_dpdk_flush_tx_queue(0), queue 1 burst_pkts 1024
MTL: 2024-05-20 10:30:01, mt_dev_put_tx_queue(0), q 1
MTL: 2024-05-20 10:30:01, mt_mempool_free, free mempool TV_M0S0_CHAIN_0_11
MTL: 2024-05-20 10:30:01, mt_mempool_free, free mempool TV_M0S0P0_HDR_0_10
MTL: 2024-05-20 10:30:01, sch_free_quota(0), quota 1080 total now 0
MTL: 2024-05-20 10:30:01, st20_tx_free(0,0), succ
MTL: 2024-05-20 10:30:02, st20p_tx_free(0), succ
[mtl_st20p @ 0x605ffa104c40] mtl_instance_put, handle 0x3200b81140 ref cnt 0
[mtl_st20p @ 0x605ffa104c40] mtl_instance_put, ref cnt reach zero, uninit mtl device
MTL: 2024-05-20 10:30:02, video_trs_tasklet_stop(0), succ
MTL: 2024-05-20 10:30:02, sch_tasklet_func(0), end with 3 tasklets
MTL: 2024-05-20 10:30:02, cni_traffic_thread, start
MTL: 2024-05-20 10:30:02, mt_sch_put_lcore, succ on shm lcore 36 for lib_sch
MTL: 2024-05-20 10:30:02, sch_stop(0), succ
MTL: 2024-05-20 10:30:02, mt_sch_stop_all, succ
MTL: 2024-05-20 10:30:02, _mt_stop, succ
MTL: 2024-05-20 10:30:02, admin_thread, stop
MTL: 2024-05-20 10:30:02, mtl_sch_unregister_tasklet(0), tasklet cni(0) unregistered
MTL: 2024-05-20 10:30:02, cni_traffic_thread, stop
MTL: 2024-05-20 10:30:02, mt_dev_put_rx_queue(0), q 0
MTL: 2024-05-20 10:30:02, mt_cni_uinit, succ
MTL: 2024-05-20 10:30:02, sch_free_quota(0), quota 0 total now 0
MTL: 2024-05-20 10:30:02, mt_sch_put(0), ref_cnt now zero
MTL: 2024-05-20 10:30:02, Warn: sch_stop(0), not started
MTL: 2024-05-20 10:30:02, mtl_sch_unregister_tasklet(0), tasklet video_transmitter(2) unregistered
MTL: 2024-05-20 10:30:02, st_video_transmitter_uinit(0), succ
MTL: 2024-05-20 10:30:02, mtl_sch_unregister_tasklet(0), tasklet tx_video_sessions_mgr(1) unregistered
MTL: 2024-05-20 10:30:02, tv_mgr_uinit(0), succ
MTL: 2024-05-20 10:30:02, sch_free(0), start to free sch: sch_0
MTL: 2024-05-20 10:30:02, mt_dpdk_flush_tx_queue(0), queue 0 burst_pkts 1024
MTL: 2024-05-20 10:30:02, mt_dev_put_tx_queue(0), q 0
MTL: 2024-05-20 10:30:02, dev_stop_port(0), succ
MTL: 2024-05-20 10:30:02, mt_dev_free, succ
MTL: 2024-05-20 10:30:02, mt_main_free, succ
MTL: 2024-05-20 10:30:02, mt_mempool_free, free mempool R_P0Q0_MBUF_1
MTL: 2024-05-20 10:30:02, mt_mempool_free, free mempool R_P0Q1_MBUF_2
MTL: 2024-05-20 10:30:02, mt_mempool_free, free mempool R_P0Q2_MBUF_3
MTL: 2024-05-20 10:30:02, mt_mempool_free, free mempool R_P0Q3_MBUF_4
MTL: 2024-05-20 10:30:02, mt_mempool_free, free mempool R_P0Q4_MBUF_5
MTL: 2024-05-20 10:30:02, mt_mempool_free, free mempool R_P0Q5_MBUF_6
MTL: 2024-05-20 10:30:02, mt_mempool_free, free mempool R_P0Q6_MBUF_7
MTL: 2024-05-20 10:30:02, mt_mempool_free, free mempool R_P0Q7_MBUF_8
MTL: 2024-05-20 10:30:02, mt_mempool_free, free mempool R_P0Q8_MBUF_9
MTL: 2024-05-20 10:30:02, mt_mempool_free, free mempool T_P0_SYS_0
MTL: 2024-05-20 10:30:02, dev_close_port(0), succ
MTL: 2024-05-20 10:30:02, stat_thread, stop
MTL: 2024-05-20 10:30:02, mt_dev_uinit, succ
MTL: 2024-05-20 10:30:02, mtl_uninit, succ
[mtl_st20p @ 0x605ffa104c40] mtl_st20p_write_close(0), frame_counter 125
[out#0/mtl_st20p @ 0x605ffa104480] video:1012500kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
frame=  125 fps= 13 q=-0.0 Lsize=N/A time=00:00:04.96 bitrate=N/A speed=0.532x

FFmpeg st20 RX

Command

ffmpeg -p_port 0000:b1:00.0 -p_sip 192.168.96.2 -p_rx_ip 239.168.85.20 -udp_port 20000 -payload_type 112 -fps 25 -pix_fmt yuv422p10le -video_size 1920x1080 -f mtl_st20p -i "k" -f rawvideo /dev/null -y

Output

rame=  117 fps= 22 q=-0.0 size=  939520kB time=00:00:04.68 bitrate=1644561.        [mtl_st20p @ 0x60c475184c40] mtl_st20p_read_packet(0), st20p_rx_get_frame ti        meout
[in#0/mtl_st20p @ 0x60c475184b00] Error during demuxing: Input/output error
[in#0/mtl_st20p @ 0x60c475184b00] Error retrieving a packet from demuxer: In        put/output error
frame=  121 fps= 19 q=-0.0 size=  971776kB time=00:00:04.80 bitrate=1658497.        [out#0/rawvideo @ 0x60c475153ac0] video:988200kB audio:0kB subtitle:0kB othe        r streams:0kB global headers:0kB muxing overhead: 0.000000%
frame=  122 fps= 19 q=-0.0 Lsize=  988200kB time=00:00:04.84 bitrate=1672589        .8kbits/s speed=0.755x
MTL: 2024-05-20 10:30:02, st20p_rx_free(0), start
MTL: 2024-05-20 10:30:02, st20_rx_free(0,0), start
MTL: 2024-05-20 10:30:02, RX_VIDEO_SESSION(0,0:st20p_rx_ffmpeg): fps 16.3982        93 frames 122 pkts 504703
MTL: 2024-05-20 10:30:02, RX_VIDEO_SESSION(0,0): throughput 534.291256 Mb/s,         cpu busy 0.478655
MTL: 2024-05-20 10:30:02, RX_VIDEO_SESSION(0,0): succ burst max 128, avg 1.0        00420
MTL: 2024-05-20 10:30:02, mt_mcast_leave(0), delete group 1455a8ef
MTL: 2024-05-20 10:30:02, mcast_membership_report_on_action(0), send leave p        kt, mb_report_len 16
MTL: 2024-05-20 10:30:02, mt_mcast_leave(0), leave group 239.168.85.20
MTL: 2024-05-20 10:30:02, mt_dev_put_rx_queue(0), q 1
MTL: 2024-05-20 10:30:02, sch_free_quota(0), quota 1620 total now 0
MTL: 2024-05-20 10:30:02, st20_rx_free, succ on sch 0 session 0
MTL: 2024-05-20 10:30:02, st20p_rx_free(0), succ
[mtl_st20p @ 0x60c475184c40] mtl_instance_put, handle 0x3200b81140 ref cnt 0
[mtl_st20p @ 0x60c475184c40] mtl_instance_put, ref cnt reach zero, uninit mt        l device
MTL: 2024-05-20 10:30:02, sch_tasklet_func(0), end with 2 tasklets
MTL: 2024-05-20 10:30:02, cni_traffic_thread, start
MTL: 2024-05-20 10:30:03, mt_sch_put_lcore, succ on shm lcore 37 for lib_sch
MTL: 2024-05-20 10:30:03, sch_stop(0), succ
MTL: 2024-05-20 10:30:03, mt_sch_stop_all, succ
MTL: 2024-05-20 10:30:03, _mt_stop, succ
MTL: 2024-05-20 10:30:03, admin_thread, stop
MTL: 2024-05-20 10:30:03, mtl_sch_unregister_tasklet(0), tasklet cni(0) unre        gistered
MTL: 2024-05-20 10:30:03, cni_traffic_thread, stop
MTL: 2024-05-20 10:30:03, mt_dev_put_rx_queue(0), q 0
MTL: 2024-05-20 10:30:03, mt_cni_uinit, succ
MTL: 2024-05-20 10:30:03, sch_free_quota(0), quota 0 total now 0
MTL: 2024-05-20 10:30:03, mt_sch_put(0), ref_cnt now zero
MTL: 2024-05-20 10:30:03, Warn: sch_stop(0), not started
MTL: 2024-05-20 10:30:03, mtl_sch_unregister_tasklet(0), tasklet rvs_pkt_rx(        1) unregistered
MTL: 2024-05-20 10:30:03, rvs_mgr_uinit(0), succ
MTL: 2024-05-20 10:30:03, sch_free(0), start to free sch: sch_0
MTL: 2024-05-20 10:30:03, mt_dpdk_flush_tx_queue(0), queue 0 burst_pkts 1024
MTL: 2024-05-20 10:30:03, mt_dev_put_tx_queue(0), q 0
MTL: 2024-05-20 10:30:03, sch_lcore_shm_uinit, remove shared memory as we ar        e the last user
MTL: 2024-05-20 10:30:03, dev_stop_port(0), succ
MTL: 2024-05-20 10:30:03, mt_dev_free, succ
MTL: 2024-05-20 10:30:03, mt_main_free, succ
MTL: 2024-05-20 10:30:03, mt_mempool_free, free mempool R_P0Q0_MBUF_1
MTL: 2024-05-20 10:30:03, mt_mempool_free, free mempool R_P0Q1_MBUF_2
MTL: 2024-05-20 10:30:03, mt_mempool_free, free mempool R_P0Q2_MBUF_3
MTL: 2024-05-20 10:30:03, mt_mempool_free, free mempool R_P0Q3_MBUF_4
MTL: 2024-05-20 10:30:03, mt_mempool_free, free mempool R_P0Q4_MBUF_5
MTL: 2024-05-20 10:30:03, mt_mempool_free, free mempool R_P0Q5_MBUF_6
MTL: 2024-05-20 10:30:03, mt_mempool_free, free mempool R_P0Q6_MBUF_7
MTL: 2024-05-20 10:30:03, mt_mempool_free, free mempool R_P0Q7_MBUF_8
MTL: 2024-05-20 10:30:03, mt_mempool_free, free mempool R_P0Q8_MBUF_9
MTL: 2024-05-20 10:30:03, mt_mempool_free, free mempool T_P0_SYS_0
MTL: 2024-05-20 10:30:03, dev_close_port(0), succ
MTL: 2024-05-20 10:30:03, stat_thread, stop
MTL: 2024-05-20 10:30:03, mt_dev_uinit, succ
MTL: 2024-05-20 10:30:03, mtl_uninit, succ
[mtl_st20p @ 0x60c475184c40] mtl_st20p_read_close(0), frame_counter 122

Max link speed of E810-CAM2 on Windows

I am using a Intel E810-CAM2 based pcie card, with a QSFP28 passive cable. My development platform is Windows 11 and with this config I am limited to 8-9Gbps.
I am only getting a link speed of 10g instead of 100g, which is what I believe is limiting the performance.
MT: 2023-12-24 01:26:44, mt_eth_link_dump(0), link_speed 10g link_status 1 link_duplex 1 link_autoneg 1

Am I missing something or is this normal behavior due to some lacking driver/runtime support on Windows?

Issue when trying to use the library on Windows

Hello,

I am trying to use this library on Windows Server 2022.
To do so, I followed the steps described in https://github.com/OpenVisualCloud/Media-Transport-Library/blob/main/doc/build_WIN.md
and https://github.com/OpenVisualCloud/Media-Transport-Library/blob/main/doc/run_WIN.md.

I built successfully the solution but I am facing issues when tring to run the sample applications.

I tried with two different NIC : XXV710 and E810.

Here are the versions I am working with:

  • DPDK : 22.03
  • Intelยฎ Ethernet Adapter Complete Driver Pack : 27.6.1

Intel E810

With the Intel E810, I can not even run the dpdk-helloworld sample.

I have the following messages:

PS C:\Users\Administrator\Desktop\dpdk-22.07\build\examples> .\dpdk-helloworld.exe
EAL: Detected CPU lcores: 16
EAL: Detected NUMA nodes: 2
EAL: Multi-process support is requested, but not available.
EAL: Requested device 0000:01:00.0 cannot be used
EAL: Requested device 0000:01:00.1 cannot be used
EAL: Probe PCI driver: net_ice (8086:1593) device: 0000:03:00.0 (socket 0)
ice_dev_init(): Failed to read device serial number

ice_load_pkg(): failed to search file path

ice_dev_init(): Failed to load the DDP package,Use safe-mode-support=1 to enter Safe Mode
EAL: Requested device 0000:03:00.0 cannot be used
EAL: Requested device 0000:03:00.1 cannot be used
EAL: Requested device 0000:03:00.2 cannot be used
EAL: Requested device 0000:03:00.3 cannot be used
EAL: Requested device 0000:05:00.0 cannot be used
EAL: Requested device 0000:06:00.0 cannot be used
EAL: Bus (pci) probe failed.
hello from core 1
hello from core 2
hello from core 3
hello from core 4
hello from core 5
hello from core 6
hello from core 7
hello from core 8
hello from core 9
hello from core 10
hello from core 11
hello from core 12
hello from core 13
hello from core 14
hello from core 15
hello from core 0

Here is a screenshot of the Device Manager:
image

As we can see, the virt2phys from dpdk-mods seems properly installed. Also, I bound on of the NIC to the netuio driver from dpdk-mods.

The NIC bound has the physical address 0000:03:00.0.

Do you have any idea what is the reason for the ice_dev_init() error?

XXV710

When I bind a XXV710 NIC instead, I am able to use DPDK sample applications.

For example:

PS C:\Users\Administrator\Desktop\dpdk-22.07\build-2\examples> .\dpdk-helloworld.exe
EAL: Detected CPU lcores: 16
EAL: Detected NUMA nodes: 2
EAL: Multi-process support is requested, but not available.
EAL: Probe PCI driver: net_i40e (8086:158b) device: 0000:01:00.0 (socket 0)
i40e_enable_extended_tag(): Does not support Extended Tag
EAL: Requested device 0000:01:00.1 cannot be used
EAL: Requested device 0000:03:00.1 cannot be used
EAL: Requested device 0000:03:00.2 cannot be used
EAL: Requested device 0000:03:00.3 cannot be used
EAL: Requested device 0000:05:00.0 cannot be used
EAL: Requested device 0000:06:00.0 cannot be used
hello from core 1
hello from core 2
hello from core 3
hello from core 4
hello from core 5
hello from core 6
hello from core 7
hello from core 8
hello from core 9
hello from core 10
hello from core 11
hello from core 12
hello from core 13
hello from core 14
hello from core 15
hello from core 0

Or:

PS C:\dpdk\bin> ./dpdk-testpmd.exe -l 1-4 -n 4 -a 01:00.0 --log-level=8 -- --socket-num=0 --burst=64 --txd=4096 --rxd=1024 --mbcache=512 --rxq=0 --txq=1 --nb-cores=1 --txpkts=1500 -i --forward-mode=txonly --eth-peer=0,3C:FD:FE:E0:A0:68 --tx-ip=10.10.1.185,239.0.0.8
EAL: Detected CPU lcores: 16
EAL: Detected NUMA nodes: 2
EAL: Multi-process support is requested, but not available.
EAL: Probe PCI driver: net_i40e (8086:158b) device: 0000:01:00.0 (socket 0)
i40e_enable_extended_tag(): Does not support Extended Tag
Interactive-mode selected
Set txonly packet forwarding mode
testpmd: create a new mbuf pool <mb_pool_0>: n=196608, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 0)
i40e_set_mac_max_frame(): Set max frame size at port level not applicable on link down
Port 0: 3C:FD:FE:E0:A0:68
Checking link statuses...
Done
testpmd> start
txonly packet forwarding - ports=1 - cores=1 - streams=1 - NUMA support enabled, MP allocation mode: native
Logical Core 2 (socket 0) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=3C:FD:FE:E0:A0:68

  txonly packet forwarding packets/burst=64
  packet len=1500 - nb packet segments=1
  nb forwarding cores=1 - nb forwarding ports=1
  port 0: RX queue number: 0 Tx queue number: 1
    Rx offloads=0x0 Tx offloads=0x10000
Invalid Rx queue_id=0
    RX queue: 0
      RX desc=0 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x0
    TX queue: 0
      TX desc=4096 - TX free threshold=32
      TX threshold registers: pthresh=32 hthresh=0  wthresh=0
      TX offloads=0x10000 - TX RS bit threshold=32
testpmd> stop
Port 0: link state change event

Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 75             RX-dropped: 0             RX-total: 75
  TX-packets: 8923263        TX-dropped: 98476513      TX-total: 107399776
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 75             RX-dropped: 0             RX-total: 75
  TX-packets: 8923263        TX-dropped: 98476513      TX-total: 107399776
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
testpmd>

However, when I try to run the MLT app, I got the following error:

PS C:\Users\Administrator\Desktop\Media-Transport-Library\app\build> .\RxTxApp.exe --config_file ../../config\test_tx_1port_1v.json
st_app_parse_json, using json-c version: 0.16
MT: dev_eal_init(0), port_param: 0000:01:00.0,max_burst_size=2048
EAL: Detected CPU lcores: 16
EAL: Detected NUMA nodes: 2
MT: st version: 22.12.0 Mon Nov 28 11:19:21 2022 c7b09495-dirty gcc-8.1.0, dpdk version: DPDK 22.07.0
MT: Error: mt_dev_get_socket, failed to locate 0000:01:00.0. Please run nicctl.sh
MT: Error: mtl_init, get socket fail -19
MT: mt_dev_uinit, succ
SDL_main, mtl_init fail

I do not understand the error mt_dev_get_socket, failed to locate 0000:01:00.0. Please run nicctl.sh.

The device 0000:01:00.0 seems to be working fine as the DPDK test apps shows. And nicctl.sh does not seem to work on Windows.

Can you help me through this?

Thank you,

Eric Houet

Cannot run sample RxSt20PipelineSample, mlx5_common: No Verbs device matches PCI device

Dear Media-library team,

I have configured my debian system to install the dpdk and media transport library.
I followed the build and run guide and can successfully create VF and bind vfio-pci to the vfs.
NIC - Mellanox Connect X6 - Dx (MLNX_OFED 23.04-1.1.3.0)
OS - Debian 11, (kernel 5.15.55)
CPU - Intel(R) Xeon(R) Silver 4314 CPU @ 2.40GHz, 16 cores, no numa, hyperthreading disabled in bios
Except core 0 all other cores are isolated from linux kernel scheduler. NOTE: no vmx flag seen in lscpu command

  1. I installed the MLNX_OFED-23.04-1.1.3.0 with the following command.
    $ ./mlnxofedinstall --dpdk --upstream-libs --skip-distro-check
  2. activated the intel vt-D setting in the bios and added iommu to the kernel commandline , hugepages activated etc.
    NOTE: SR-IOV support in BIOS is disabled, Do I need this ?
  3. Then followed the steps to clone and install both media library and dpdk
  4. with the nicctl.sh script I could create VFs and bind vfio-pci to them.

root@KC200-24-FLEX-AIC:~/Media-Transport-Library# ./script/nicctl.sh create_vf 0000:c3:00.0
0000:c3:00.0 'MT2892 Family [ConnectX-6 Dx] 101d' if=mlnx1 drv=mlx5_core unused= Active
Bind 0000:c3:00.2(eth0) to vfio-pci success
Bind 0000:c3:00.3(eth1) to vfio-pci success
Bind 0000:c3:00.4(eth2) to vfio-pci success
Bind 0000:c3:00.5(eth3) to vfio-pci success
Bind 0000:c3:00.6(eth4) to vfio-pci success
Bind 0000:c3:00.7(eth5) to vfio-pci success
Create VFs on PF bdf: 0000:c3:00.0 mlnx1 succ

root@KC200-24-FLEX-AIC:~/Media-Transport-Library# ./script/nicctl.sh status 0000:c3:00.0
0000:c3:00.0 'MT2892 Family [ConnectX-6 Dx] 101d' if=mlnx1 drv=mlx5_core unused=vfio-pci Active

root@KC200-24-FLEX-AIC:~/Media-Transport-Library# ./script/nicctl.sh status 0000:c3:00.2
0000:c3:00.2 'ConnectX Family mlx5Gen Virtual Function 101e' drv=vfio-pci unused=mlx5_core
Bind bdf: 0000:c3:00.2 to kernel eth0 succ

root@KC200-24-FLEX-AIC:~/Media-Transport-Library# lspci | grep Mel
c3:00.0 Ethernet controller: Mellanox Technologies MT2892 Family [ConnectX-6 Dx]
c3:00.1 Ethernet controller: Mellanox Technologies MT2892 Family [ConnectX-6 Dx]
c3:00.2 Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function
c3:00.3 Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function
c3:00.4 Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function
c3:00.5 Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function
c3:00.6 Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function
c3:00.7 Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function

root@KC200-24-FLEX-AIC:~/Media-Transport-Library# lsmod | grep -e ib -e mlx
ib_ipoib 151552 0
ib_cm 139264 2 rdma_cm,ib_ipoib
ib_umad 40960 0
mlx5_ib 454656 0
ib_uverbs 151552 2 rdma_ucm,mlx5_ib
ib_core 458752 8 rdma_cm,ib_ipoib,iw_cm,ib_umad,rdma_ucm,ib_uverbs,mlx5_ib,ib_cm
mlx5_core 2019328 1 mlx5_ib
mlxfw 36864 1 mlx5_core
mlxdevm 176128 1 mlx5_core
mlx_compat 24576 11 rdma_cm,ib_ipoib,mlxdevm,iw_cm,ib_umad,ib_core,rdma_ucm,ib_uverbs,mlx5_ib,ib_cm,mlx5_core
ptp 32768 4 igb,mlx5_core
pci_hyperv_intf 16384 1 mlx5_core

$ dmesg
...
[ 369.223349] VFIO - User Level meta-driver version: 0.3
[ 369.293820] mlx5_core 0000:c3:00.0: E-Switch: Enable: mode(LEGACY), nvfs(6), active vports(7)
[ 369.408209] pci 0000:c3:00.2: [15b3:101e] type 00 class 0x020000
[ 369.414514] pci 0000:c3:00.2: enabling Extended Tags
[ 369.420836] pci 0000:c3:00.2: Adding to iommu group 144
[ 369.427207] mlx5_core 0000:c3:00.2: enabling device (0000 -> 0002)
[ 369.434092] mlx5_core 0000:c3:00.2: firmware version: 22.37.1014
[ 369.619426] mlx5_core 0000:c3:00.2: Rate limit: 127 rates are supported, range: 0Mbps to 97656Mbps
[ 369.644794] mlx5_core 0000:c3:00.2: Assigned random MAC address d6:52:af:af:f9:4d
[ 369.652371] mlx5_core 0000:c3:00.2: MLX5E: StrdRq(1) RqSz(8) StrdSz(2048) RxCqeCmprss(0)
[ 369.778229] mlx5_core 0000:c3:00.2: Supported tc offload range - chains: 1, prios: 1
....

  1. But when running the RxTxApp I get the following error.
    NOTE : I have ST2110 source generating signal at mcast address 239.0.90.1 and src ip is 192.168.1.90
    root@KC200-24-FLEX-AIC:~/Media-Transport-Library# ./build/app/RxSt20PipelineSample --p_port 0000:c3:00.2 --p_sip 192.168.1.90 --p_rx_ip 239.0.90.1
    MT: dev_eal_init(0), port_param: 0000:c3:00.2
    MT: dev_eal_init, wait eal_init_thread done
    EAL: Detected CPU lcores: 16
    EAL: Detected NUMA nodes: 1
    EAL: Detected shared linkage of DPDK
    EAL: Selected IOVA mode 'VA'
    EAL: No free 1048576 kB hugepages reported on node 0
    EAL: VFIO support initialized
    EAL: Probe PCI driver: mlx5_pci (15b3:101e) device: 0000:c3:00.2 (socket -1)
    mlx5_common: No Verbs device matches PCI device 0000:c3:00.2, are kernel drivers loaded?
    mlx5_common: Verbs device not found: 0000:c3:00.2
    mlx5_common: Failed to initialize device context.
    EAL: Requested device 0000:c3:00.2 cannot be used
    EAL: Bus (pci) probe failed.
    TELEMETRY: No legacy callbacks, legacy socket not created
    MT: st version: 23.12.0 Fri Aug 4 09:02:04 2023 a578ad6 gcc-10.2.1, dpdk version: DPDK 23.03.0
    MT: Error: mt_dev_get_socket, failed to locate 0000:c3:00.2. Please run nicctl.sh
    MT: Error: mtl_init, get socket fail -19
    main: mtl_init fail

Do you know or have seen this issue before ?

Cheers
Prankur

Querying supported network adapters

I was looking for a way to query the supported network adapters using MTL, but there seems there are no APIs for this. Is this the case or am I overlooking something? In case this is not covered by MTL, could you provide some suggested solutions for Linux and Windows?

Request for Information: Precision Packet Transmission for Periodic Control Traffic

Hello, I noticed that you are using TSN to control multimedia traffic transmission. I'm interested in using this project to control a robotic arm, where I need to send control packets every 1 millisecond. In this scenario, I would require a mechanism that can accurately control the sending rate to ensure that the control packets are sent at the specified interval. Does this project support this functionality? Thank you!

When dpdk/23.xx/tsn/*patch added, dpdk-testpmd can't work in I226-IT nic, but why?

Hello, I'm interested in using IMTL for writing TSN application with low datapath I/O latency, like this link(https://www.intel.com/content/www/us/en/developer/articles/reference-implementation/tsn-based-hdmi-to-ip-converter.html).
My platform:
OS: Ubuntu 22.04.3,
CPU: i9-13900TE,
NICs: i226-IT * 3.

But I met configuration problems. Is i226-IT nic supported for IMTL tsn now?

When finish installing DPDK 23.xx with patches/dpdk/23.xx/*.patch only (xx=03,07,11), execute testpmd ok.

sudo modprobe vfio-pci
sudo ifconfig enp3s0 down
sudo ifconfig enp4s0 down
sudo dpdk-devbind.py --bind=vfio-pci 03:00.0
sudo dpdk-devbind.py --bind=vfio-pci 04:00.0
sudo dpdk-testpmd -c7 -- -i --nb-cores=2 --nb-ports=2

#######################
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: VFIO support initialized
EAL: Using IOMMU type 1 (Type 1)
EAL: Probe PCI driver: net_igc (8086:125d) device: 0000:03:00.0 (socket -1)
EAL: Probe PCI driver: net_igc (8086:125d) device: 0000:04:00.0 (socket -1)
TELEMETRY: No legacy callbacks, legacy socket not created
Interactive-mode selected
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mb_pool_0>: n=163456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
Configuring Port 0 (socket 0)
Port 0: 20:46:A1:0A:FE:95
Configuring Port 1 (socket 0)
Port 1: 20:46:A1:0A:FE:96
Checking link statuses...
Done
testpmd>
#########################

But when dpdk/23.xx/tsn/*patch added, DPDK recompile and after installation, testpmd failed.

####################
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: VFIO support initialized
EAL: Using IOMMU type 1 (Type 1)
EAL: Probe PCI driver: net_igc (8086:125d) device: 0000:03:00.0 (socket -1)
EAL: Releasing PCI mapped resource for 0000:03:00.0
EAL: Calling pci_unmap_resource for 0000:03:00.0 at 0x2180800000
EAL: Calling pci_unmap_resource for 0000:03:00.0 at 0x2180900000
EAL: Requested device 0000:03:00.0 cannot be used
EAL: Using IOMMU type 1 (Type 1)
EAL: Probe PCI driver: net_igc (8086:125d) device: 0000:04:00.0 (socket -1)
EAL: Releasing PCI mapped resource for 0000:04:00.0
EAL: Calling pci_unmap_resource for 0000:04:00.0 at 0x2180904000
EAL: Calling pci_unmap_resource for 0000:04:00.0 at 0x2180a04000
EAL: Requested device 0000:04:00.0 cannot be used
TELEMETRY: No legacy callbacks, legacy socket not created
testpmd: No probed ethernet devices
Interactive-mode selected
EAL: Error - exiting with code: 1
Cause: Invalid port 2
##########################

I have no i225-LM, so I can't compare using it for above test. How to explain this, Thank you!

EAL: failed to parse device on Windows 2022

Hello, my system is Windows Server 2022, I follow the build_WIN run_WIN step by step, Everything seems to be right. But when I run the RxTxApp, it return: EAL: failed to parse device "0000:05:00.0". Is something wrong ? Please help me, thanks very much.

dpdk-helloworld
dpdk-helloworld

RxTxApp
app-error

System
Windows Server 2022 Standard 21H2 20348.1726
AMD Ryzen 9 7900X 12-Core Processor 4.70 GHz

NIC
nic

Fails to compile on Ubuntu 22.04

Running ./build.sh fails on Ubuntu 22.04 with this erorr:

[96/99] Compiling C object RxSt20TxSt20SplitFwd.p/sample_rx_st20_tx_st20_split_fwd.c.o
FAILED: RxSt20TxSt20SplitFwd.p/sample_rx_st20_tx_st20_split_fwd.c.o
cc -IRxSt20TxSt20SplitFwd.p -I. -I../../app -I/usr/local/include -I/usr/include/libnl3 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -DALLOW_EXPERIMENTAL_API -DAPP_HAS_SDL2_TTF -include rte_config.h -march=native -Werror -Wall -msse4.2 -MD -MQ RxSt20TxSt20SplitFwd.p/sample_rx_st20_tx_st20_split_fwd.c.o -MF RxSt20TxSt20SplitFwd.p/sample_rx_st20_tx_st20_split_fwd.c.o.d -o RxSt20TxSt20SplitFwd.p/sample_rx_st20_tx_st20_split_fwd.c.o -c ../../app/sample/rx_st20_tx_st20_split_fwd.c
../../app/sample/rx_st20_tx_st20_split_fwd.c: In function โ€˜mainโ€™:
../../app/sample/rx_st20_tx_st20_split_fwd.c:190:7: error: โ€˜fiโ€™ may be used uninitialized in this function [-Werror=maybe-uninitialized]
190 | free(fi);
| ^~~~~~~~
../../app/sample/rx_st20_tx_st20_split_fwd.c:183:24: note: โ€˜fiโ€™ was declared here
183 | struct frame_info* fi;
| ^~
cc1: all warnings being treated as errors
[97/99] Compiling C object RxTxApp.p/src_parse_json.c.o
ninja: build stopped: subcommand failed.

The compiler version:

$ gcc --version
gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

mtl-ice 1.12.7 does not compile under kernel 6.6.16

We recently had to upgrade our OS from 6.4.x to the latest stable kernel (6.6.16). Unfortunately, the mtl-ice v1.12.7 no longer compiles. Here is the error:

/mtl-ice-1.12.7/src/ice_txrx.h:363:29: error: field, xdp_rxq has incomplete type
363 | struct xdp_rxq_info xdp_rxq;

Any help or patches would be appreciated.

Allow disabling box processing in st22_rx_session

I would like to disable box processing in ST22 in order to allow downward application to receive and process them. Something similar already exist for st22_tx.

This would be easy to implement by adding a check here and setting slot->st22_box_hdr_length = 0;. However, I didn't find any st22 related struct passed to that function where I could propagate a flag from st22_rx_ops.

I will be happy to implement the change if you can provide pointers on where to stuff the necessary flag so that it can be retrieved in rv_handle_st22_pkt.

Question : purpose of the TAP interface

Hello,

I have a question regarding the utility of the TAP interface when using your library.

When I first read the documentation and browsed to the code, I had the following impression:

  • Packet linked to usefull protocols (like ARP/IGMP/ICMP/PTP) arriving on the media interface are redirected to the TAP interface
  • The OS's network stack handle those protocols as they are not handled by DPDK.

After playing a bit with the library, I can now see that I was wrong. I see that you handle ARP/IGMP/PTP protocols in the library itself through the code in mt_arp, mt_mcast and mt_ptp. So I am not sure of how the TAP interface should be used.

So, what is the purpose of the TAP interface? For what kind of use cases is it usefull?

Best regards,

Eric Houet

Segmentation fault when using Intel X710 adapter VF

Segmentation fault when using Intel X710 adapter VF, PF working fine.
Debugging show that VIRTCHNL_VF_OFFLOAD_QOS capability is missing, but ethtool -k shows (before rebind to the vfio-pci) "hw-tc-offload: on".

MTL 23.12, DPDK 23.07, Ubuntu 22.04 kernel 6.5.0-21-generic

Lost frames when receiving.

We're testing the receiving end of our application but we're seeing significant loss of frames consistently on the input, I'm seeing 20 incomplete frames in every stat report. The amount of incomplete frames per stat period seems to be the same regardless of the framerate we operate at. Which would suggest it's not related to performance.
In our test equipment we've tested a single leg going over a switch back into the other port on our E810 card, and we've tested sending with a VF device and receiving with another VF device on the same physical device.

logs (RX):

MT: 2023-11-30 10:17:31, dev_eal_init(0), port_param: 0000:18:11.0
MT: 2023-11-30 10:17:31, dev_eal_init, wait eal_init_thread done
EAL: Detected CPU lcores: 64
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Selected IOVA mode 'VA'
EAL: 4062 hugepages of size 2097152 reserved, but no mounted hugetlbfs found for that size
EAL: No free 1048576 kB hugepages reported on node 0
EAL: VFIO support initialized
EAL: Using IOMMU type 1 (Type 1)
EAL: Probe PCI driver: net_ice_dcf (8086:1889) device: 0000:18:11.0 (socket 0)
EAL: Releasing PCI mapped resource for 0000:18:11.0
EAL: Calling pci_unmap_resource for 0000:18:11.0 at 0x2180800000
EAL: Calling pci_unmap_resource for 0000:18:11.0 at 0x2180820000
EAL: Using IOMMU type 1 (Type 1)
EAL: Probe PCI driver: net_iavf (8086:1889) device: 0000:18:11.0 (socket 0)
TELEMETRY: No legacy callbacks, legacy socket not created
MT: 2023-11-30 10:17:31, st version: 23.12.0 Sun Nov 19 21:36:58 2023 2022.11.1-1272-gf4b85819-dirty gcc-12.2.0, dpdk version: DPDK 23.03.0
MT: 2023-11-30 10:17:31, mt_instance_init, succ
MT: 2023-11-30 10:17:31, mtl_init(0), socket_id 0 port 0000:18:11.0
MT: 2023-11-30 10:17:31, stat_thread, start
MT: 2023-11-30 10:17:31, mt_stat_init, stat period 10s
MT: 2023-11-30 10:17:31, mt_dev_if_init(0), use mt ptp source
MT: 2023-11-30 10:17:31, mt_dev_if_init(0), user request queues tx 0 rx 2
MT: 2023-11-30 10:17:31, mt_dev_if_init(0), deprecated sessions tx 0 rx 0
MT: 2023-11-30 10:17:31, dev_config_port(0), tx_q(3 with 512 desc) rx_q (3 with 2048 desc)
MT: 2023-11-30 10:17:31, mt_mempool_create_by_ops(0), succ at 0x11804fdf00 size 3.234375m n 1536 d 2048 for T_P0_SYS_0
MT: 2023-11-30 10:17:31, dev_if_init_tx_queues(0), tx_queues 3 malloc succ
MT: 2023-11-30 10:17:31, mt_mempool_create_by_ops(0), succ at 0x1180afdf00 size 6.468750m n 3072 d 2048 for R_P0Q0_MBUF_1
MT: 2023-11-30 10:17:31, mt_mempool_create_by_ops(0), succ at 0x11814fdf00 size 4.968750m n 3072 d 1536 for R_P0Q1_MBUF_2
MT: 2023-11-30 10:17:31, mt_mempool_create_by_ops(0), succ at 0x1181cfdf00 size 4.968750m n 3072 d 1536 for R_P0Q2_MBUF_3
MT: 2023-11-30 10:17:31, dev_if_init_rx_queues(0), rx_queues 3 malloc succ
MT: 2023-11-30 10:17:31, mt_dev_if_init(0), port_id 0 port_type 1 drv_type 3
MT: 2023-11-30 10:17:31, mt_dev_if_init(0), dev_capa 0x0, offload 0x119fbf:0x9266f queue offload 0x0:0x0, rss : 0x3ffc
MT: 2023-11-30 10:17:31, mt_dev_if_init(0), system_rx_queues_end 1 hdr_split_rx_queues_end 1
MT: 2023-11-30 10:17:31, mt_dev_if_init(0), sip: 192.168.200.51
MT: 2023-11-30 10:17:31, mt_dev_if_init(0), netmask: 255.255.255.0
MT: 2023-11-30 10:17:31, mt_dev_if_init(0), gateway: 0.0.0.0
MT: 2023-11-30 10:17:31, mt_dev_if_init(0), mac: da:3f:97:6b:be:54
iavf_configure_queues(): request RXDID[22] in Queue[0]
iavf_configure_queues(): request RXDID[22] in Queue[1]
iavf_configure_queues(): request RXDID[22] in Queue[2]
MT: 2023-11-30 10:17:31, dev_start_port(0), rx_defer 0
MT: 2023-11-30 10:17:31, mt_eth_link_dump(0), link_speed 10g link_status 1 link_duplex 1 link_autoneg 1
MT: 2023-11-30 10:17:31, dev_if_init_pacing(0), try rl as drv support
MT: 2023-11-30 10:17:31, dev_rl_shaper_add(0), bps 134217728 on shaper 1
MT: 2023-11-30 10:17:31, dev_init_ratelimit_all(0), q 0 link to shaper id 1
MT: 2023-11-30 10:17:31, dev_init_ratelimit_all(0), q 1 link to shaper id 1
MT: 2023-11-30 10:17:31, dev_init_ratelimit_all(0), q 2 link to shaper id 1
MT: 2023-11-30 10:17:31, mt_dev_create(0), feature 0x30, tx pacing ratelimit
MT: 2023-11-30 10:17:31, mt_sch_mrg_init, succ with data quota 31068 M, nb_tasklets 16
MT: 2023-11-30 10:17:31, mt_sch_add_quota(0:0), quota 0 total now 0
MT: 2023-11-30 10:17:31, mt_dev_get_tx_queue(0), q 0 with speed 1.073742g bps
MT: 2023-11-30 10:17:31, mt_mcast_init, report every 10 seconds
MT: 2023-11-30 10:17:31, mt_dev_get_rx_queue(0), q 0 ip 0.0.0.0 port 0
MT: 2023-11-30 10:17:31, cni_queues_init(0), rxq 0
MT: 2023-11-30 10:17:31, mt_sch_register_tasklet(0), tasklet cni registered into slot 0
MT: 2023-11-30 10:17:31, cni_traffic_thread, start
MT: 2023-11-30 10:17:31, st_plugins_init, succ
MT: 2023-11-30 10:17:31, admin_thread, start
MT: 2023-11-30 10:17:31, Warn: config_parse_json, open json file kahawai.json fail
MT: 2023-11-30 10:17:31, mt_ptp_port_id(0), port_number: 0000, clk_id: da:3f:97:ff:fe:6b:be:54
MT: 2023-11-30 10:17:31, mt_main_create, succ
MT: 2023-11-30 10:17:31, mtl_init, succ, tsc_hz 2300000000
MT: 2023-11-30 10:17:31, mtl_init, simd level avx512_vbmi, flags 0x0
MT: 2023-11-30 10:17:31, st20p_rx_create, start for TEST-VIDEO
MT: 2023-11-30 10:17:31, st20_get_converter, plugin not found, input fmt: YUV422RFC4175PG2BE10, output fmt: YUV422PLANAR10LE
MT: 2023-11-30 10:17:31, rx_st20p_get_converter(0), use internal converter
MT: 2023-11-30 10:17:31, rx_st20p_init_dst_fbs(0), size 8294400 fmt 0 with 8 frames
MT: 2023-11-30 10:17:31, mt_sch_add_quota(0:0), quota 2592 total now 2592
MT: 2023-11-30 10:17:31, mt_sch_get(0), succ with quota_mbs 2592
MT: 2023-11-30 10:17:31, mt_sch_register_tasklet(0), tasklet rvs_pkt_rx registered into slot 1
MT: 2023-11-30 10:17:31, mt_sch_register_tasklet(0), tasklet rvs_ctl registered into slot 2
MT: 2023-11-30 10:17:31, rvs_mgr_init(0), succ
MT: 2023-11-30 10:17:31, rte_rx_flow_create(0), queue 1 succ, ip 239.66.1.1 port 5000
MT: 2023-11-30 10:17:31, mt_dev_get_rx_queue(0), q 1 ip 239.66.1.1 port 5000
MT: 2023-11-30 10:17:31, rv_init_hw(0), port(l:0,p:0), queue 1 udp 5000
MT: 2023-11-30 10:17:31, mt_mcast_join(0), new group 239.66.1.1
MT: 2023-11-30 10:17:31, mt_rtcp_rx_create(RV_M0S0P0), suss
MT: 2023-11-30 10:17:31, rv_attach(0), 8 frames with size 5184000(810,0), type 0, progressive
MT: 2023-11-30 10:17:31, rv_attach(0), w 1920 h 1080 fmt ST20_FMT_YUV_422_10BIT packing 0 pt 112 flags 0x4 frame time 16.666667ms fps 60.000000
MT: 2023-11-30 10:17:31, mt_sch_add_quota(0:0), quota 1296 total now 3888
MT: 2023-11-30 10:17:31, st20_rx_create_with_mask, succ on sch 0 session 0
MT: 2023-11-30 10:17:31, st20p_rx_create(0), transport fmt ST20_FMT_YUV_422_10BIT, output fmt YUV422PLANAR10LE, dynamic_ext_frame false
MT: 2023-11-30 10:17:31, st30_rx_create, start for Test Audio
MT: 2023-11-30 10:17:31, mt_sch_add_quota(0:0), quota 31 total now 3919
MT: 2023-11-30 10:17:31, mt_sch_get(0), succ with quota_mbs 31
MT: 2023-11-30 10:17:31, mt_sch_register_tasklet(0), tasklet rx_audio_sessions_mgr registered into slot 3
MT: 2023-11-30 10:17:31, rx_audio_sessions_mgr_init(0), succ
MT: 2023-11-30 10:17:31, rte_rx_flow_create(0), queue 2 succ, ip 239.66.1.3 port 5000
MT: 2023-11-30 10:17:31, mt_dev_get_rx_queue(0), q 2 ip 239.66.1.3 port 5000
MT: 2023-11-30 10:17:31, rx_audio_session_init_hw(0), port(l:0,p:0), queue 2 udp 5000
MT: 2023-11-30 10:17:31, mt_mcast_join(0), new group 239.66.1.3
MT: 2023-11-30 10:17:31, rx_audio_session_attach(0), pkt_len 576 frame_size 576
MT: 2023-11-30 10:17:31, st30_rx_create(0,0), succ on 0x1180336140
WAIT NANOS: 26666667
MT: 2023-11-30 10:17:32, mt_calibrate_tsc, tscHz 2299999008
MT: 2023-11-30 10:17:32, sch_tasklet_func(0), start with 4 tasklets
MT: 2023-11-30 10:17:32, sch_start(0), succ on lcore 1
MT: 2023-11-30 10:17:32, mt_dev_start, succ
MT: 2023-11-30 10:17:32, _mt_start, succ, avail ports 1
MT: 2023-11-30 10:17:32, cni_traffic_thread, stop
MT: 2023-11-30 10:17:32, rvs_ctl_tasklet_start(0), succ
MT: 2023-11-30 10:17:32, rx_audio_sessions_tasklet_start(0), succ
MT: 2023-11-30 10:17:32, Error: rx_audio_session_get_frame(0), no free frame
**(^REPEATED^)**
MT: 2023-11-30 10:17:41, * *    M T    D E V   S T A T E   * * 
MT: 2023-11-30 10:17:41, DEV(0): Avr rate, tx: 0.000288 Mb/s, rx: 2607.738320 Mb/s, pkts, tx: 6, rx: 2134292
MT: 2023-11-30 10:17:41, Error: DEV(0): Status: rx_hw_dropped_packets 333240 rx_err_packets 0 rx_nombuf_packets 0 tx_err_packets 0
MT: 2023-11-30 10:17:41, Error: rx_good_packets: 525
MT: 2023-11-30 10:17:41, Error: rx_good_bytes: 694778
MT: 2023-11-30 10:17:41, Error: rx_bytes: 352420
MT: 2023-11-30 10:17:41, Error: rx_multicast_packets: 266
MT: 2023-11-30 10:17:41, CNI(0): eth_rx_rate 0.000661 Mb/s, eth_rx_cnt 2
MT: 2023-11-30 10:17:41, PTP(0): time 1701357461697874592, 2023-11-30 10:17:41
MT: 2023-11-30 10:17:41, RX_VIDEO_SESSION(0,0:TEST-VIDEO): fps 50.632904 frames 505 pkts 2125643
MT: 2023-11-30 10:17:41, RX_VIDEO_SESSION(0,0:TEST-VIDEO): throughput 2250.258886 Mb/s, cpu busy 2.724733
MT: 2023-11-30 10:17:41, RX_VIDEO_SESSION(0,0): incomplete frames 18, pkts (idx error: 0, offset error: 0, idx out of bitmap: 0, missed: 30076)
MT: 2023-11-30 10:17:41, RX_VIDEO_SESSION(0,0): out of order pkts 7
MT: 2023-11-30 10:17:41, rtcp_rx_stat(RV_M0S0P0), rtp recv 2125645 lost 288 nack sent 4
MT: 2023-11-30 10:17:41, RX_AUDIO_SESSION(0,0:Test Audio): fps 948.032120, st30 received frames 9441, received pkts 9441
MT: 2023-11-30 10:17:41, RX_AUDIO_SESSION(0,0): st30 dropped frames 0, dropped pkts 509
MT: 2023-11-30 10:17:41, * *    E N D    S T A T E   * * 

MT: 2023-11-30 10:17:51, * *    M T    D E V   S T A T E   * * 
MT: 2023-11-30 10:17:51, DEV(0): Avr rate, tx: 0.000192 Mb/s, rx: 2618.087397 Mb/s, pkts, tx: 4, rx: 2362429
MT: 2023-11-30 10:17:51, Error: DEV(0): Status: rx_hw_dropped_packets 115564 rx_err_packets 0 rx_nombuf_packets 0 tx_err_packets 0
MT: 2023-11-30 10:17:51, Error: rx_good_packets: 522
MT: 2023-11-30 10:17:51, Error: rx_good_bytes: 690806
MT: 2023-11-30 10:17:51, Error: rx_bytes: 348436
MT: 2023-11-30 10:17:51, Error: rx_multicast_packets: 262
MT: 2023-11-30 10:17:51, CNI(0): eth_rx_rate 0.000661 Mb/s, eth_rx_cnt 2
MT: 2023-11-30 10:17:51, PTP(0): time 1701357471697893324, 2023-11-30 10:17:51
MT: 2023-11-30 10:17:51, RX_VIDEO_SESSION(0,0:TEST-VIDEO): fps 56.000071 frames 560 pkts 2353441
MT: 2023-11-30 10:17:51, RX_VIDEO_SESSION(0,0:TEST-VIDEO): throughput 2491.410880 Mb/s, cpu busy 2.723031
MT: 2023-11-30 10:17:51, RX_VIDEO_SESSION(0,0): incomplete frames 20, pkts (idx error: 0, offset error: 0, idx out of bitmap: 0, missed: 33254)
MT: 2023-11-30 10:17:51, rtcp_rx_stat(RV_M0S0P0), rtp recv 2353436 lost 328 nack sent 3
MT: 2023-11-30 10:17:51, RX_AUDIO_SESSION(0,0:Test Audio): fps 1000.001844, st30 received frames 10000, received pkts 10000
MT: 2023-11-30 10:17:51, * *    E N D    S T A T E   * * 

MT: 2023-11-30 10:18:01, * *    M T    D E V   S T A T E   * * 
MT: 2023-11-30 10:18:01, DEV(0): Avr rate, tx: 0.000144 Mb/s, rx: 2618.067174 Mb/s, pkts, tx: 3, rx: 2362111
MT: 2023-11-30 10:18:01, Error: DEV(0): Status: rx_hw_dropped_packets 115862 rx_err_packets 0 rx_nombuf_packets 0 tx_err_packets 0
MT: 2023-11-30 10:18:01, Error: rx_good_packets: 527
MT: 2023-11-30 10:18:01, Error: rx_good_bytes: 694764
MT: 2023-11-30 10:18:01, Error: rx_bytes: 353746
MT: 2023-11-30 10:18:01, Error: rx_multicast_packets: 267
MT: 2023-11-30 10:18:01, CNI(0): eth_rx_rate 0.000661 Mb/s, eth_rx_cnt 2
MT: 2023-11-30 10:18:01, PTP(0): time 1701357481697944957, 2023-11-30 10:18:01
MT: 2023-11-30 10:18:01, RX_VIDEO_SESSION(0,0:TEST-VIDEO): fps 55.999881 frames 560 pkts 2353152
MT: 2023-11-30 10:18:01, RX_VIDEO_SESSION(0,0:TEST-VIDEO): throughput 2491.104883 Mb/s, cpu busy 2.711157
MT: 2023-11-30 10:18:01, RX_VIDEO_SESSION(0,0): incomplete frames 20, pkts (idx error: 0, offset error: 0, idx out of bitmap: 0, missed: 33552)
MT: 2023-11-30 10:18:01, rtcp_rx_stat(RV_M0S0P0), rtp recv 2353149 lost 208 nack sent 2
MT: 2023-11-30 10:18:01, RX_AUDIO_SESSION(0,0:Test Audio): fps 999.997456, st30 received frames 10000, received pkts 10000
MT: 2023-11-30 10:18:01, * *    E N D    S T A T E   * *

Since the sender is also an MTL utilizing application here are the TX logs:

MT: 2023-11-30 10:15:50, dev_eal_init(0), port_param: 0000:18:01.0
MT: 2023-11-30 10:15:50, dev_eal_init, wait eal_init_thread done
EAL: Detected CPU lcores: 64
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Selected IOVA mode 'VA'
EAL: 4023 hugepages of size 2097152 reserved, but no mounted hugetlbfs found for that size
EAL: No free 1048576 kB hugepages reported on node 0
EAL: VFIO support initialized
EAL: Using IOMMU type 1 (Type 1)
EAL: Probe PCI driver: net_ice_dcf (8086:1889) device: 0000:18:01.0 (socket 0)
EAL: Releasing PCI mapped resource for 0000:18:01.0
EAL: Calling pci_unmap_resource for 0000:18:01.0 at 0x2180800000
EAL: Calling pci_unmap_resource for 0000:18:01.0 at 0x2180820000
EAL: Using IOMMU type 1 (Type 1)
EAL: Probe PCI driver: net_iavf (8086:1889) device: 0000:18:01.0 (socket 0)
TELEMETRY: No legacy callbacks, legacy socket not created
MT: 2023-11-30 10:15:56, st version: 23.12.0 Sun Nov 19 21:36:58 2023 2022.11.1-1272-gf4b85819-dirty gcc-12.2.0, dpdk version: DPDK 23.03.0
MT: 2023-11-30 10:15:56, mt_instance_init, succ
MT: 2023-11-30 10:15:56, mtl_init(0), socket_id 0 port 0000:18:01.0
MT: 2023-11-30 10:15:56, mt_stat_init, stat period 10s
MT: 2023-11-30 10:15:56, mt_dev_if_init(0), use mt ptp source
MT: 2023-11-30 10:15:56, mt_dev_if_init(0), user request queues tx 2 rx 0
MT: 2023-11-30 10:15:56, mt_dev_if_init(0), deprecated sessions tx 0 rx 0
MT: 2023-11-30 10:15:56, stat_thread, start
MT: 2023-11-30 10:15:56, dev_config_port(0), tx_q(3 with 512 desc) rx_q (3 with 2048 desc)
MT: 2023-11-30 10:15:56, mt_mempool_create_by_ops(0), succ at 0x11804fdf00 size 3.234375m n 1536 d 2048 for T_P0_SYS_0
MT: 2023-11-30 10:15:56, dev_if_init_tx_queues(0), tx_queues 3 malloc succ
MT: 2023-11-30 10:15:56, mt_mempool_create_by_ops(0), succ at 0x1180afdf00 size 6.468750m n 3072 d 2048 for R_P0Q0_MBUF_1
MT: 2023-11-30 10:15:56, mt_mempool_create_by_ops(0), succ at 0x11814fdf00 size 4.968750m n 3072 d 1536 for R_P0Q1_MBUF_2
MT: 2023-11-30 10:15:56, mt_mempool_create_by_ops(0), succ at 0x1181cfdf00 size 4.968750m n 3072 d 1536 for R_P0Q2_MBUF_3
MT: 2023-11-30 10:15:56, dev_if_init_rx_queues(0), rx_queues 3 malloc succ
MT: 2023-11-30 10:15:56, mt_dev_if_init(0), port_id 0 port_type 1 drv_type 3
MT: 2023-11-30 10:15:56, mt_dev_if_init(0), dev_capa 0x0, offload 0x119fbf:0x9266f queue offload 0x0:0x0, rss : 0x3ffc
MT: 2023-11-30 10:15:56, mt_dev_if_init(0), system_rx_queues_end 1 hdr_split_rx_queues_end 1
MT: 2023-11-30 10:15:56, mt_dev_if_init(0), sip: 192.168.200.50
MT: 2023-11-30 10:15:56, mt_dev_if_init(0), netmask: 255.255.255.0
MT: 2023-11-30 10:15:56, mt_dev_if_init(0), gateway: 0.0.0.0
MT: 2023-11-30 10:15:56, mt_dev_if_init(0), mac: 96:03:6d:60:4b:b7
iavf_configure_queues(): request RXDID[22] in Queue[0]
iavf_configure_queues(): request RXDID[22] in Queue[1]
iavf_configure_queues(): request RXDID[22] in Queue[2]
MT: 2023-11-30 10:15:56, dev_start_port(0), rx_defer 0
MT: 2023-11-30 10:15:56, mt_eth_link_dump(0), link_speed 10g link_status 1 link_duplex 1 link_autoneg 1
MT: 2023-11-30 10:15:56, dev_rl_shaper_add(0), bps 134217728 on shaper 1
MT: 2023-11-30 10:15:56, dev_init_ratelimit_all(0), q 0 link to shaper id 1
MT: 2023-11-30 10:15:56, dev_init_ratelimit_all(0), q 1 link to shaper id 1
MT: 2023-11-30 10:15:56, dev_init_ratelimit_all(0), q 2 link to shaper id 1
MT: 2023-11-30 10:15:56, mt_dev_create(0), feature 0x30, tx pacing ratelimit
MT: 2023-11-30 10:15:56, mt_sch_mrg_init, succ with data quota 31068 M, nb_tasklets 16
MT: 2023-11-30 10:15:56, mt_sch_add_quota(0:0), quota 0 total now 0
MT: 2023-11-30 10:15:56, mt_dev_get_tx_queue(0), q 0 with speed 1.073742g bps
MT: 2023-11-30 10:15:56, mt_mcast_init, report every 10 seconds
MT: 2023-11-30 10:15:56, mt_dev_get_rx_queue(0), q 0 ip 0.0.0.0 port 0
MT: 2023-11-30 10:15:56, cni_queues_init(0), rxq 0
MT: 2023-11-30 10:15:56, mt_sch_register_tasklet(0), tasklet cni registered into slot 0
MT: 2023-11-30 10:15:56, cni_traffic_thread, start
MT: 2023-11-30 10:15:56, st_plugins_init, succ
MT: 2023-11-30 10:15:56, admin_thread, start
MT: 2023-11-30 10:15:56, Warn: config_parse_json, open json file kahawai.json fail
MT: 2023-11-30 10:15:56, mt_ptp_port_id(0), port_number: 0000, clk_id: 96:03:6d:ff:fe:60:4b:b7
MT: 2023-11-30 10:15:56, mt_main_create, succ
MT: 2023-11-30 10:15:56, mtl_init, succ, tsc_hz 2300000000
MT: 2023-11-30 10:15:56, mtl_init, simd level avx512_vbmi, flags 0x0
MT: 2023-11-30 10:15:56, st20p_tx_create, start for TEST-VIDEO
MT: 2023-11-30 10:15:56, st20_get_converter, plugin not found, input fmt: YUV422PLANAR10LE, output fmt: YUV422RFC4175PG2BE10
MT: 2023-11-30 10:15:56, tx_st20p_get_converter(0), use internal converter
MT: 2023-11-30 10:15:56, tx_st20p_init_src_fbs(0), size 8294400 fmt 0 with 2 frames
MT: 2023-11-30 10:15:56, st20_tx_create, start for TEST-VIDEO
MT: 2023-11-30 10:15:56, mt_sch_add_quota(0:0), quota 2592 total now 2592
MT: 2023-11-30 10:15:56, mt_sch_get(0), succ with quota_mbs 2592
MT: 2023-11-30 10:15:56, mt_sch_register_tasklet(0), tasklet tx_video_sessions_mgr registered into slot 1
MT: 2023-11-30 10:15:56, tv_mgr_init(0), succ
MT: 2023-11-30 10:15:56, mt_sch_register_tasklet(0), tasklet video_transmitter registered into slot 2
MT: 2023-11-30 10:15:56, st_video_transmitter_init(0), succ
MT: 2023-11-30 10:15:56, tv_attach(0), st21_vrx_narrow: 9, st21_vrx_wide: 823
MT: 2023-11-30 10:15:56, mt_mempool_create_by_ops(0), succ at 0x11834fdf00 size 0.281250m n 1024 d 128 for TV_M0S0P0_HDR_0_4
MT: 2023-11-30 10:15:56, mt_mempool_create_by_ops(0), succ at 0x11836fdf00 size 0.125000m n 1024 d 0 for TV_M0S0_CHAIN_0_5
MT: 2023-11-30 10:15:56, dev_rl_shaper_add(0), bps 326401800 on shaper 2
MT: 2023-11-30 10:15:56, dev_tx_queue_set_rl_rate(0), q 1 link to shaper id 2(326401800)
MT: 2023-11-30 10:15:56, mt_dev_get_tx_queue(0), q 1 with speed 2.611214g bps
MT: 2023-11-30 10:15:56, tv_init_hw(0,0), port(l:0,p:0), queue 1, count 512
MT: 2023-11-30 10:15:56, tv_init_hw(0), type 0 number 3086 size 1322
MT: 2023-11-30 10:15:56, tv_init_hw(0), type 1 number 1028 size 1328
MT: 2023-11-30 10:15:56, tv_init_hw(0), type 2 number 1 size 422
MT: 2023-11-30 10:15:56, tv_init_hdr(0,0), ip 239.66.1.1 port 5000:5000
MT: 2023-11-30 10:15:56, tv_init_hdr(0), mac: 01:00:5e:42:01:01, ssrc 1193040
MT: 2023-11-30 10:15:57, mt_calibrate_tsc, tscHz 2300002421
MT: 2023-11-30 10:15:57, tv_train_pacing(0,0), trained pad_interval 350.673340 pkts_per_frame 4126.734567 with time 0.636767s
MT: 2023-11-30 10:15:57, tv_init_pacing[00], trs 3888.213852 trOffset 637037.037037 vrx 5 warm_pkts 128 frame time 16.666667ms fps 60.000000
MT: 2023-11-30 10:15:57, tv_attach(0), len 1260(1322) total 4115 each line 0 type 0 flags 0x10, progressive
MT: 2023-11-30 10:15:57, tv_attach(0), w 1920 h 1080 fmt ST20_FMT_YUV_422_10BIT packing 0 pt 112, pacing way: ratelimit
MT: 2023-11-30 10:15:57, st20_tx_create(0,0), succ on 0x11803368c0
MT: 2023-11-30 10:15:57, st20p_tx_create(0), transport fmt ST20_FMT_YUV_422_10BIT, input fmt: YUV422PLANAR10LE
MT: 2023-11-30 10:15:57, st30_tx_create, start for Test Audio
MT: 2023-11-30 10:15:57, mt_sch_add_quota(0:0), quota 103 total now 2695
MT: 2023-11-30 10:15:57, mt_sch_get(0), succ with quota_mbs 103
MT: 2023-11-30 10:15:57, mt_sch_register_tasklet(0), tasklet tx_audio_sessions_build registered into slot 3
MT: 2023-11-30 10:15:57, mt_sch_register_tasklet(0), tasklet tx_audio_sessions_trans registered into slot 4
MT: 2023-11-30 10:15:57, tx_audio_sessions_mgr_init(0), succ
MT: 2023-11-30 10:15:57, mt_sch_register_tasklet(0), tasklet audio_transmitter registered into slot 5
MT: 2023-11-30 10:15:57, st_audio_transmitter_init(0), succ
MT: 2023-11-30 10:15:57, mt_dev_get_tx_queue(0), q 2 with speed 1.073742g bps
MT: 2023-11-30 10:15:57, tx_audio_sessions_mgr_init_hw(0,0), succ, queue 2
MT: 2023-11-30 10:15:57, tx_audio_session_init_pacing[00], trs 1000000.000000 pkt_time_sampling 48.000000
MT: 2023-11-30 10:15:57, tx_audio_session_init_hdr(0,0), ip 239.66.1.3 port 5000:5000
MT: 2023-11-30 10:15:57, tx_audio_session_init_hdr(0), mac: 01:00:5e:42:01:03, ssrc 2241616
MT: 2023-11-30 10:15:57, mt_mempool_create_by_ops(0), succ at 0x1183e0c480 size 0.421875m n 1536 d 128 for TA_M0S0P0_HDR_0_6
MT: 2023-11-30 10:15:57, mt_mempool_create_by_ops(0), succ at 0x118380c480 size 1.125000m n 1536 d 640 for TA_M0S0_CHAIN_0_7
MT: 2023-11-30 10:15:57, tx_audio_session_init_trans_ring(0,0), trans_ring_thresh 10
MT: 2023-11-30 10:15:57, tx_audio_session_attach(0), pkt_len 576 frame_size 576 fps 1000.000000
MT: 2023-11-30 10:15:57, st30_tx_create(0,0), succ on 0x1181e00b00
MT: 2023-11-30 10:15:57, sch_tasklet_func(0), start with 6 tasklets
MT: 2023-11-30 10:15:57, sch_start(0), succ on lcore 2
MT: 2023-11-30 10:15:57, mt_dev_start, succ
MT: 2023-11-30 10:15:57, _mt_start, succ, avail ports 1
MT: 2023-11-30 10:15:57, cni_traffic_thread, stop
MT: 2023-11-30 10:15:57, video_trs_tasklet_start(0), succ
MT: 2023-11-30 10:15:57, st_audio_trs_tasklet_start(0), succ
MT: 2023-11-30 10:16:06, * *    M T    D E V   S T A T E   * * 
MT: 2023-11-30 10:16:06, DEV(0): Avr rate, tx: 2278.404974 Mb/s, rx: 0.000661 Mb/s, pkts, tx: 2156798, rx: 2
MT: 2023-11-30 10:16:06, CNI(0): eth_rx_rate 0.000661 Mb/s, eth_rx_cnt 2
MT: 2023-11-30 10:16:06, PTP(0): time 1701357366037212709, 2023-11-30 10:16:06
MT: 2023-11-30 10:16:06, TX_VIDEO_SESSION(0,0:TEST-VIDEO): fps 59.081732, frame 522 pkts 2150156:2149119 inflight 128877:128940
MT: 2023-11-30 10:16:06, TX_VIDEO_SESSION(0,0): throughput 2575.046148 Mb/s: 0.000000 Mb/s, cpu busy 76.093338
MT: 2023-11-30 10:16:06, TX_VIDEO_SESSION(0,0): dummy pkts 522, burst 522
MT: 2023-11-30 10:16:06, TX_VIDEO_SESSION(0,0): mismatch epoch troffset 3
MT: 2023-11-30 10:16:06, TX_VIDEO_SESSION(0,0): epoch drop 7
MT: 2023-11-30 10:16:06, TX_VIDEO_SESSION(0,0): build timeout frames 1
MT: 2023-11-30 10:16:06, TX_VIDEO_SESSION(0,0): busy as no ready frame from user 2
MT: 2023-11-30 10:16:06, TX_VIDEO_SESSION(0,0): tx done for cleanup 512
MT: 2023-11-30 10:16:06, TX_AUDIO_SESSION(0,0:Test Audio): fps 987.870845 frame cnt 8728, pkt cnt 8728, inflight count 0: 0
MT: 2023-11-30 10:16:06, TX_AUDIO_SESSION(0,0): epoch mismatch 10
MT: 2023-11-30 10:16:06, TX_AUDIO_SESSION(0,0): epoch drop 117
MT: 2023-11-30 10:16:06, TX_AUDIO_MGR(0), pkts burst 8716
MT: 2023-11-30 10:16:06, * *    E N D    S T A T E   * * 

MT: 2023-11-30 10:16:16, * *    M T    D E V   S T A T E   * * 
MT: 2023-11-30 10:16:16, DEV(0): Avr rate, tx: 2618.222990 Mb/s, rx: 0.000661 Mb/s, pkts, tx: 2478470, rx: 2
MT: 2023-11-30 10:16:16, CNI(0): eth_rx_rate 0.000661 Mb/s, eth_rx_cnt 2
MT: 2023-11-30 10:16:16, PTP(0): time 1701357376037226446, 2023-11-30 10:16:16
MT: 2023-11-30 10:16:16, TX_VIDEO_SESSION(0,0:TEST-VIDEO): fps 60.000128, frame 600 pkts 2469608:2469008 inflight 148099:148206
MT: 2023-11-30 10:16:16, TX_VIDEO_SESSION(0,0): throughput 2613.757093 Mb/s: 0.000000 Mb/s, cpu busy 76.087547
MT: 2023-11-30 10:16:16, TX_VIDEO_SESSION(0,0): dummy pkts 600, burst 600
MT: 2023-11-30 10:16:16, TX_AUDIO_SESSION(0,0:Test Audio): fps 1000.004050 frame cnt 10000, pkt cnt 10000, inflight count 0: 0
MT: 2023-11-30 10:16:16, TX_AUDIO_SESSION(0,0): epoch mismatch 10
MT: 2023-11-30 10:16:16, TX_AUDIO_MGR(0), pkts burst 10000
MT: 2023-11-30 10:16:16, * *    E N D    S T A T E   * * 

MT: 2023-11-30 10:16:26, * *    M T    D E V   S T A T E   * * 
MT: 2023-11-30 10:16:26, DEV(0): Avr rate, tx: 2618.230398 Mb/s, rx: 0.000661 Mb/s, pkts, tx: 2478477, rx: 2
MT: 2023-11-30 10:16:26, CNI(0): eth_rx_rate 0.000661 Mb/s, eth_rx_cnt 2
MT: 2023-11-30 10:16:26, PTP(0): time 1701357386037286801, 2023-11-30 10:16:26
MT: 2023-11-30 10:16:26, TX_VIDEO_SESSION(0,0:TEST-VIDEO): fps 59.999835, frame 600 pkts 2469608:2469008 inflight 147865:147974
MT: 2023-11-30 10:16:26, TX_VIDEO_SESSION(0,0): throughput 2613.744322 Mb/s: 0.000000 Mb/s, cpu busy 76.091873
MT: 2023-11-30 10:16:26, TX_VIDEO_SESSION(0,0): dummy pkts 600, burst 600
MT: 2023-11-30 10:16:26, TX_AUDIO_SESSION(0,0:Test Audio): fps 999.997600 frame cnt 10000, pkt cnt 10000, inflight count 0: 0
MT: 2023-11-30 10:16:26, TX_AUDIO_SESSION(0,0): epoch mismatch 10
MT: 2023-11-30 10:16:26, TX_AUDIO_MGR(0), pkts burst 10000
MT: 2023-11-30 10:16:26, * *    E N D    S T A T E   * * 

BUG: ST40 transmit throws error with empty frames.

When pushing out empty ST40 frames on an ST40 session errors are logged, looking at the code it seems that it calculates a number of required packets based of the UDW size, and logs an error if the calculated amount of packets is less than 1.

As far as I know it's common to send ST40 packets containing zero data elements as a form of heartbeat for each frame (or even each field, when sending interlaced content).

Also; I notice that the st40_frame struct lacks a member to indicate what field it's part of.

Validate JPEGXS stream

Hello,

Funny story, I was building a 2110 video jitter generator on DPDK for the past several months, and I found this repo last week, you can't imagine how excited I was. I would like to comment that this Media Transport Library is a game changer and I respect the work you've all done, this is amazing to another degree.
JPEGXS.zip

I got almost everything working as expected, and all my tests pass, and I'm able to send and receive -20, -30, and -40 to my phabrix QXL, but I'm not able to verify the jpegXS output with anything except my Cobalt Indigo 2110-DC-01 (I work at Cobalt), which does not like the output stream. I also have the IntoPix -22 Wireshark dissector, which can't dissect the jpegXS stream either. I setup the ffpmeg encoder and ran the following. What equipment are you receiving these jpegXS streams with??? Attached is the pcap file for this stream:

****@*****:~/MTL/Media-Transport-Library$ sudo ./build/app/TxSt22PipelineSample --st22_codec h264_cbr --st22_fmt YUV422PLANAR8 --tx_url test_planar8.yuv --p_port 0000:51:00.0
./build/app/TxSt22PipelineSample: unrecognized option '--st22_fmt'
MT: dev_eal_init(0), port_param: 0000:51:00.0
MT: dev_eal_init, wait eal_init_thread done
EAL: Detected CPU lcores: 32
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Selected IOVA mode 'VA'
EAL: No free 2048 kB hugepages reported on node 0
EAL: VFIO support initialized
EAL: Probe PCI driver: mlx5_pci (15b3:101d) device: 0000:51:00.0 (socket 0)
TELEMETRY: No legacy callbacks, legacy socket not created
MT: st version: 23.12.0 Mon Sep 25 14:32:07 2023 3b6d52e gcc-11.4.0, dpdk version: DPDK 23.07.0
MT: mtl_init(0), socket_id 0 port 0000:51:00.0
MT: mt_dev_if_init(0), use mt ptp source
MT: mt_dev_if_init(0), user request queues tx 1 rx 0
MT: mt_dev_if_init(0), deprecated sessions tx 0 rx 0
MT: Warn: dev_config_port(0), failed to setup all ptype, only 0 supported
MT: dev_config_port(0), tx_q(2 with 512 desc) rx_q (1 with 2048 desc)
MT: mt_mempool_create_by_ops(0), succ at 0x17d2b8440 size 2.156250m n 1024 d 2048 for T_P0_SYS
MT: dev_if_init_tx_queues(0), tx_queues 2 malloc succ
MT: mt_mempool_create_by_ops(0), succ at 0x17cf434c0 size 6.468750m n 3072 d 2048 for R_P0Q0_MBUF
MT: dev_if_init_rx_queues(0), rx_queues 1 malloc succ
MT: mt_dev_if_init(0), port_id 0 port_type 2 drv_type 8
MT: mt_dev_if_init(0), dev_capa 0x14, offload 0xd96af:0x18621f queue offload 0x0:0x18601f, rss : 0xf00000000803afbc
MT: mt_dev_if_init(0), system_rx_queues_end 1 hdr_split_rx_queues_end 1
MT: mt_dev_if_init(0), sip: 192.168.85.60
MT: mt_dev_if_init(0), netmask: 255.255.255.0
MT: mt_dev_if_init(0), gateway: 0.0.0.0
MT: mt_dev_if_init(0), mac: e8:eb:d3:ab:f6:82
MT: stat_thread, start
MT: mt_stat_init, stat period 10s
MT: dev_init_lcores, shared memory attached at 0x7f747c650000 nattch 1
MT: dev_start_port(0), rx_defer 0
MT: mt_eth_link_dump(0), link_speed 100g link_status 1 link_duplex 1 link_autoneg 1
MT: dev_if_init_pacing(0), use tsc as default
MT: mt_dev_create(0), feature 0x70, tx pacing tsc
MT: mt_sch_mrg_init, succ with data quota 31068 M, nb_tasklets 16
MT: mt_sch_add_quota(0:0), quota 0 total now 0
MT: mt_dev_get_tx_queue(0), q 0 without rl
MT: mt_mcast_init, report every 10 seconds
MT: mt_dev_get_rx_queue(0), q 0 ip 0.0.0.0 port 0
MT: cni_queues_init(0), rxq 0
MT: mt_sch_register_tasklet(0), tasklet cni registered into slot 0
MT: st_plugins_init, succ
MT: admin_thread, start
MT: config_parse_json, parse kahawai.json with json-c version: 0.16
MT: cni_traffic_thread, start
MT: st22_decoder_register(0), st22_ffmpeg_plugin_decoder registered, device 1 cap(0x200000000000000:0x8)
MT: st22_encoder_register(0), st22_ffmpeg_plugin_encoder registered, device 1 cap(0x8:0x200000000000000)
st_plugin_create, succ with st22 ffmpeg plugin
MT: st_plugin_register(0), /usr/local/lib/x86_64-linux-gnu/libst_plugin_st22_ffmpeg.so registered, version 1
MT: Warn: st_plugin_register, dlopen /usr/local/lib64/libst_plugin_st22_ffmpeg.so fail
MT: st22_decoder_register(1), st22_decoder_sample registered, device 1 cap(0x300000000000000:0x70000002b)
MT: st22_encoder_register(1), st22_encoder_sample registered, device 1 cap(0x70000002b:0x300000000000000)
st_plugin_create, succ with st22 sample plugin
MT: st_plugin_register(1), /usr/local/lib/x86_64-linux-gnu/libst_plugin_st22_sample.so registered, version 1
MT: Warn: st_plugin_register, dlopen /usr/local/lib64/libst_plugin_st22_sample.so fail
MT: mt_main_create, succ
MT: mtl_init, succ, tsc_hz 3400000000
MT: mtl_init, simd level avx512_vbmi, flags 0x1
MT: st22p_tx_create, start for st22p_sample
encoder_create_session(0), input fmt: YUV422PLANAR10LE, output fmt: H264_CBR_CODESTREAM
encoder_create_session(0), max_codestream_size 777600
MT: st22_get_encoder_session(1), get one session at 0 on dev st22_encoder_sample, max codestream size 777600
MT: st22_get_encoder_session(1), input fmt: YUV422PLANAR10LE, output fmt: H264_CBR_CODESTREAM
MT: tx_st22p_init_src_fbs(0), size 8294400 fmt 0 with 3 frames
MT: st22_tx_create, start for st22p_sample
MT: mt_sch_add_quota(0:0), quota 48 total now 48
MT: mt_sch_get(0), succ with quota_mbs 48
MT: mt_sch_register_tasklet(0), tasklet tx_video_sessions_mgr registered into slot 1
MT: tv_mgr_init(0), succ
MT: mt_sch_register_tasklet(0), tasklet video_transmitter registered into slot 2
MT: st_video_transmitter_init(0), succ
MT: tv_attach(0), st21_vrx_narrow: 8, st21_vrx_wide: 720
encode_thread(0), start
MT: mt_mempool_create_by_ops(0), succ at 0x17ace3b00 size 0.281250m n 1024 d 128 for TV_M0S0P0_HDR_0
MT: mt_mempool_create_by_ops(0), succ at 0x17ab4f500 size 0.125000m n 1024 d 0 for TV_M0S0_CHAIN_0
MT: mt_dev_get_tx_queue(0), q 1 without rl
MT: tv_init_hw(0,0), port(l:0,p:0), queue 1, count 512
MT: tv_init_hw(0), type 0 number 608 size 1296
MT: tv_init_hdr(0,0), ip 239.168.85.20 port 20000:20000
MT: tv_init_hdr(0), mac: 01:00:5e:28:55:14
MT: tv_init_pacing[00], trs 26342.105263 trOffset 637674.074074 vrx 0 warm_pkts 0 frame time 16.683333ms fps 59.940060
MT: tv_attach(0), len 1280(1296) total 608 each line 0 type 0 flags 0x0, progressive
MT: tv_attach(0), w 1920 h 1080 fmt ST20_FMT_YUV_422_10BIT packing 0 pt 112, pacing way: tsc
MT: st22_tx_create(0,0), succ on 0x17f8ef8c0
MT: st22p_tx_create(0), codestream fmt H264_CBR_CODESTREAM, input fmt: YUV422PLANAR10LE
tx_st22p_open_logo, open logo.yuv fail
tx_st22p_frame_thread(0), start
MT: mt_calibrate_tsc, tscHz 3400010977
MT: mt_dev_get_lcore, available lcore 1
MT: sch_tasklet_func(0), start with 3 tasklets
MT: sch_start(0), succ on lcore 1
MT: mt_dev_start, succ
MT: _mt_start, succ, avail ports 1
MT: cni_traffic_thread, stop
MT: video_trs_tasklet_start(0), succ
MT: * * M T D E V S T A T E * *
MT: DEV(0): Avr rate, tx: 345.488736 Mb/s, rx: 0.001888 Mb/s, pkts, tx: 323020, rx: 4
MT: CNI(0): eth_rx_rate 0.001888 Mb/s, eth_rx_cnt 4
MT: ST22 encoder dev: st22_encoder_sample with 1 sessions
MT: TX_ST22P(st22p_sample), p(0:in_trans) e(0:in_trans) c(2:in_encoding)
MT: PTP(0): time 1695665225329405816, 2023-09-25 18:07:05
MT: TX_VIDEO_SESSION(0,0:st22p_sample): fps 53.806800, frame 532 pkts 323672:323156 inflight 80790:80790
MT: TX_VIDEO_SESSION(0,0): throughput 349.576619 Mb/s: 0.000000 Mb/s, cpu busy 0.002777
MT: * * E N D S T A T E * *

MT: * * M T D E V S T A T E * *
MT: DEV(0): Avr rate, tx: 389.789888 Mb/s, rx: 0.001000 Mb/s, pkts, tx: 364440, rx: 3
MT: CNI(0): eth_rx_rate 0.001000 Mb/s, eth_rx_cnt 3
MT: ST22 encoder dev: st22_encoder_sample with 1 sessions
MT: TX_ST22P(st22p_sample), p(2:in_trans) e(2:in_trans) c(1:encoded)
MT: PTP(0): time 1695665235329593903, 2023-09-25 18:07:15
MT: TX_VIDEO_SESSION(0,0:st22p_sample): fps 59.898578, frame 599 pkts 364452:364452 inflight 91113:91113
MT: TX_VIDEO_SESSION(0,0): throughput 389.793476 Mb/s: 0.000000 Mb/s, cpu busy 0.000000
MT: * * E N D S T A T E * *

MT: * * M T D E V S T A T E * *
MT: DEV(0): Avr rate, tx: 389.763686 Mb/s, rx: 0.000000 Mb/s, pkts, tx: 364416, rx: 0
MT: CNI(0): eth_rx_rate 0.000000 Mb/s, eth_rx_cnt 0
MT: ST22 encoder dev: st22_encoder_sample with 1 sessions
MT: TX_ST22P(st22p_sample), p(2:in_trans) e(2:in_trans) c(1:in_encoding)
MT: PTP(0): time 1695665245329788746, 2023-09-25 18:07:25
MT: TX_VIDEO_SESSION(0,0:st22p_sample): fps 59.998524, frame 600 pkts 364428:364428 inflight 91107:91107
MT: TX_VIDEO_SESSION(0,0): throughput 389.766944 Mb/s: 0.000000 Mb/s, cpu busy 0.000000
MT: * * E N D S T A T E * *

Install netuio driver failed on windows10,the device can not start

I am test IMTL 23.04 under vmware workstation 16 pro, host machine is windows 10, virtual machine is windows server 2019, allocated 8G memory, and 2 dual-core CPUs. 3 network cards are configured, whether it is the default e1000e network card or changed to vmxnet3, the netuio driver can be successfully installed in the virtual machine, but the device failed to start.

I followed the instruction document step by step, repeated N times, I was going crazy...

please help me.

best regards.

vm settings

device

install netuio driver

device not started

failed messages

Segfaults in st20p_tx when sending interlaced content

Segfaults are happening at "random" spots (depending on how application is constructed, frame size etc.) when running st20p_tx pipeline with interlaced enabled.
Likely something is writing out of bounds and causing havoc.

Documentation also isn't truly clear on this: should I set the height to the full frame height? Or to field height? Documentation suggests that FPS for example should be field FPS, so one would assume height is field height as well.
When copying in lines does one only fill the alternating lines on the st_frame? Or does one fill the first half worth of lines for each field?

Example code attached that shows the crash.
mtl-interlaced-test.zip

SDL not outputting video when running RxTxApp.

Hello,

I've been using your library for a few months now and I just want to say that it's fantastic and is a great test utility for many of my company's products. I'm exploring some of the other features now, specifically the ability to view an incoming stream.

I have MTL setup on Ubuntu 22.04 with the Gnome Display Manager, I have all the SDL dependencies installed as the build guide directs. When I run the RxTxApp I get this output:

image

The console output does say "st_app_init_display, open font fail, won't show info: SDL_RWFromFile(): No file or no mode specified", which from my understanding means it won't display the FPS counter which is fine, but the SDL windows just shows up blank, and ubuntu is detecting it as frozen.

I'm streaming a 422 1080p@30FPS yuv just as the run guide says. Any thoughts on how to debug this? Is there a better environment to run in to get this to work correctly?

This is the console output of the receive stream:

sudo ./build/app/RxTxApp --config_file config/test_rx_1port_1v.json --ptp
st_app_parse_json, using json-c version: 0.16
app_args_json, json_file config/test_rx_1port_1v.json succ
MT: 2023-11-16 21:06:43, dev_eal_init(0), port_param: 0000:c3:00.0
MT: 2023-11-16 21:06:43, dev_eal_init, wait eal_init_thread done
EAL: Detected CPU lcores: 32
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Selected IOVA mode 'VA'
EAL: No free 2048 kB hugepages reported on node 0
EAL: VFIO support initialized
EAL: Probe PCI driver: mlx5_pci (15b3:101d) device: 0000:c3:00.0 (socket 0)
TELEMETRY: No legacy callbacks, legacy socket not created
MT: 2023-11-16 21:06:43, st version: 23.12.0 Thu Nov 16 19:39:00 2023 5a564cb gcc-11.4.0, dpdk version: DPDK 23.07.0
MT: 2023-11-16 21:06:43, Error: mt_instance_init, connect to manager fail
MT: 2023-11-16 21:06:43, mtl_init(0), socket_id 0 port 0000:c3:00.0
MT: 2023-11-16 21:06:43, stat_thread, start
MT: 2023-11-16 21:06:43, mt_stat_init, stat period 10s
MT: 2023-11-16 21:06:43, mt_dev_if_init(0), use mt ptp source
MT: 2023-11-16 21:06:43, mt_dev_if_init(0), user request queues tx 4 rx 1
MT: 2023-11-16 21:06:43, mt_dev_if_init(0), deprecated sessions tx 0 rx 0
MT: 2023-11-16 21:06:43, Warn: dev_config_port(0), failed to setup all ptype, only 0 supported
MT: 2023-11-16 21:06:43, dev_config_port(0), tx_q(5 with 512 desc) rx_q (3 with 2048 desc)
MT: 2023-11-16 21:06:43, mt_mempool_create_by_ops(0), succ at 0x17d2b8340 size 3.234375m n 1536 d 2048 for T_P0_SYS_0
MT: 2023-11-16 21:06:43, dev_if_init_tx_queues(0), tx_queues 5 malloc succ
MT: 2023-11-16 21:06:43, mt_mempool_create_by_ops(0), succ at 0x17ce0a3c0 size 6.468750m n 3072 d 2048 for R_P0Q0_MBUF_1
MT: 2023-11-16 21:06:43, mt_mempool_create_by_ops(0), succ at 0x17c5b1040 size 6.468750m n 3072 d 2048 for R_P0Q1_MBUF_2
MT: 2023-11-16 21:06:43, mt_mempool_create_by_ops(0), succ at 0x17bd57cc0 size 4.968750m n 3072 d 1536 for R_P0Q2_MBUF_3
MT: 2023-11-16 21:06:43, dev_if_init_rx_queues(0), rx_queues 3 malloc succ
MT: 2023-11-16 21:06:43, mt_dev_if_init(0), port_id 0 port_type 2 drv_type 8
MT: 2023-11-16 21:06:43, mt_dev_if_init(0), dev_capa 0x14, offload 0xd96af:0x18621f queue offload 0x0:0x18601f, rss : 0xf00000000803afbc
MT: 2023-11-16 21:06:43, mt_dev_if_init(0), system_rx_queues_end 2 hdr_split_rx_queues_end 2
MT: 2023-11-16 21:06:43, mt_dev_if_init(0), sip: 192.168.84.189
MT: 2023-11-16 21:06:43, mt_dev_if_init(0), netmask: 255.255.255.0
MT: 2023-11-16 21:06:43, mt_dev_if_init(0), gateway: 0.0.0.0
MT: 2023-11-16 21:06:43, mt_dev_if_init(0), mac: b8:3f:d2:44:e3:a4
MT: 2023-11-16 21:06:43, Error: dev_start_timesync(0), rte_eth_timesync_enable fail -95
MT: 2023-11-16 21:06:43, dev_start_port(0), rx_defer 0
MT: 2023-11-16 21:06:43, mt_eth_link_dump(0), link_speed 25g link_status 1 link_duplex 1 link_autoneg 1
MT: 2023-11-16 21:06:43, Error: dev_start_timesync(0), rte_eth_timesync_enable fail -95
MT: 2023-11-16 21:06:43, dev_if_init_pacing(0), use tsc as default
MT: 2023-11-16 21:06:43, mt_dev_create(0), feature 0x70, tx pacing tsc
MT: 2023-11-16 21:06:43, sch_lcore_shm_init, shared memory attached at 0x7f4dcd999000 nattch 2 shm_id 30 key 0x15050005
MT: 2023-11-16 21:06:43, mt_sch_mrg_init, succ with data quota 31068 M, nb_tasklets 16
MT: 2023-11-16 21:06:43, mt_sch_add_quota(0:0), quota 0 total now 0
MT: 2023-11-16 21:06:43, mt_dev_get_tx_queue(0), q 0 without rl
MT: 2023-11-16 21:06:43, mt_mcast_init, report every 10 seconds
MT: 2023-11-16 21:06:43, mt_dev_get_rx_queue(0), q 0 ip 0.0.0.0 port 0
MT: 2023-11-16 21:06:43, cni_queues_init(0), rxq 0
MT: 2023-11-16 21:06:43, mt_sch_register_tasklet(0), tasklet cni registered into slot 0
MT: 2023-11-16 21:06:43, cni_traffic_thread, start
MT: 2023-11-16 21:06:43, admin_thread, start
MT: 2023-11-16 21:06:43, st_plugins_init, succ
MT: 2023-11-16 21:06:43, config_parse_json, parse kahawai.json with json-c version: 0.16
MT: 2023-11-16 21:06:43, st22_decoder_register(0), st22_decoder_sample registered, device 1 cap(0x300000000000000:0x70000002b)
MT: 2023-11-16 21:06:43, st22_encoder_register(0), st22_encoder_sample registered, device 1 cap(0x70000002b:0x300000000000000)
st_plugin_create, succ with st22 sample plugin
MT: 2023-11-16 21:06:43, st_plugin_register(0), /usr/local/lib/x86_64-linux-gnu/libst_plugin_st22_sample.so registered, version 1
MT: 2023-11-16 21:06:43, Warn: st_plugin_register, dlopen /usr/local/lib64/libst_plugin_st22_sample.so fail
MT: 2023-11-16 21:06:43, mt_ptp_port_id(0), port_number: 0000, clk_id: b8:3f:d2:ff:fe:44:e3:a4
MT: 2023-11-16 21:06:43, mt_mcast_join(0), new group 224.0.1.129
MT: 2023-11-16 21:06:43, Warn: ptp_init(0), ptp running without timesync support
MT: 2023-11-16 21:06:43, ptp_init(0), sip: 192.168.84.189
MT: 2023-11-16 21:06:43, mt_main_create, succ
MT: 2023-11-16 21:06:43, mtl_init, succ, tsc_hz 3400000000
MT: 2023-11-16 21:06:43, mtl_init, simd level avx512_vbmi, flags 0x1f
st_app_init_display, open font fail, won't show info: SDL_RWFromFile(): No file or no mode specified
MT: 2023-11-16 21:06:43, ptp_parse_announce(0), master initialized, mode l4 utc_offset 37 domain_number 127
MT: 2023-11-16 21:06:43, mt_ptp_port_id(0), port_number: 0203, clk_id: 44:4c:a8:ff:ff:97:c6:95
MT: 2023-11-16 21:06:44, mt_sch_add_quota(0:1), quota 2589 total now 2589
MT: 2023-11-16 21:06:44, mt_sch_get(0), succ with quota_mbs 2589
MT: 2023-11-16 21:06:44, mt_sch_register_tasklet(0), tasklet rvs_pkt_rx registered into slot 1
MT: 2023-11-16 21:06:44, mt_sch_register_tasklet(0), tasklet rvs_ctl registered into slot 2
MT: 2023-11-16 21:06:44, rvs_mgr_init(0), succ
MT: 2023-11-16 21:06:44, rte_rx_flow_create(0), queue 1 succ, ip 239.168.84.1 port 20000
MT: 2023-11-16 21:06:44, mt_dev_get_rx_queue(0), q 1 ip 239.168.84.1 port 20000
MT: 2023-11-16 21:06:44, rv_init_hw(0), port(l:0,p:0), queue 1 udp 20000
MT: 2023-11-16 21:06:44, rv_init_dma(0), fail, can not request dma dev
MT: 2023-11-16 21:06:44, mt_mcast_join(0), new group 239.168.84.1
MT: 2023-11-16 21:06:44, rv_attach(0), 6 frames with size 5184000(810,0), type 0, progressive
MT: 2023-11-16 21:06:44, rv_attach(0), w 1920 h 1080 fmt ST20_FMT_YUV_422_10BIT packing 0 pt 112 flags 0x20000 frame time 16.683333ms fps 59.940060
MT: 2023-11-16 21:06:44, mt_sch_add_quota(0:1), quota 1294 total now 3883
MT: 2023-11-16 21:06:44, st20_rx_create_with_mask, succ on sch 0 session 0
app_rx_video_frame_thread(0), start
MT: 2023-11-16 21:06:44, mt_calibrate_tsc, tscHz 3400004344
MT: 2023-11-16 21:06:44, mt_sch_get_lcore, available lcore 4
MT: 2023-11-16 21:06:44, sch_tasklet_func(0), start with 3 tasklets
MT: 2023-11-16 21:06:44, sch_start(0), succ on lcore 4
MT: 2023-11-16 21:06:44, mt_dev_start, succ
MT: 2023-11-16 21:06:44, _mt_start, succ, avail ports 1
main, app lunch succ, test time 0s
MT: 2023-11-16 21:06:44, cni_traffic_thread, stop
MT: 2023-11-16 21:06:44, rvs_ctl_tasklet_start(0), succ
MT: 2023-11-16 21:06:53, * * M T D E V S T A T E * *
MT: 2023-11-16 21:06:53, DEV(0): Avr rate, tx: 0.005522 Mb/s, rx: 1169.247213 Mb/s, pkts, tx: 81, rx: 1104922
MT: 2023-11-16 21:06:53, Error: DEV(0): Status: rx_hw_dropped_packets 90541 rx_err_packets 0 rx_nombuf_packets 0 tx_err_packets 0
MT: 2023-11-16 21:06:53, Error: rx_good_packets: 556
MT: 2023-11-16 21:06:53, Error: rx_good_bytes: 735866
MT: 2023-11-16 21:06:53, Error: rx_q1_packets: 556
MT: 2023-11-16 21:06:53, Error: rx_q1_bytes: 735866
MT: 2023-11-16 21:06:53, Error: rx_unicast_packets: 321226
MT: 2023-11-16 21:06:53, Error: rx_unicast_bytes: 64705860
MT: 2023-11-16 21:06:53, Error: rx_multicast_packets: 1196057
MT: 2023-11-16 21:06:53, Error: rx_multicast_bytes: 1586842373
MT: 2023-11-16 21:06:53, Error: tx_multicast_packets: 1232378
MT: 2023-11-16 21:06:53, Error: tx_multicast_bytes: 1630580380
MT: 2023-11-16 21:06:53, Error: rx_broadcast_packets: 9
MT: 2023-11-16 21:06:53, Error: rx_broadcast_bytes: 2696
MT: 2023-11-16 21:06:53, Error: tx_phy_packets: 1232394
MT: 2023-11-16 21:06:53, Error: rx_phy_packets: 321612
MT: 2023-11-16 21:06:53, Error: tx_phy_bytes: 1635525822
MT: 2023-11-16 21:06:53, Error: rx_phy_bytes: 64745701
MT: 2023-11-16 21:06:53, Error: rx_out_of_buffer: 90541
MT: 2023-11-16 21:06:53, CNI(0): eth_rx_rate 0.035379 Mb/s, eth_rx_cnt 458
MT: 2023-11-16 21:06:53, PTP(0): time 1700168850548602602, 2023-11-16 21:06:53
MT: 2023-11-16 21:06:53, PTP(0): delta avg 25002433328748281, min -117251, max 1700165466349148784, cnt 68
MT: 2023-11-16 21:06:53, PTP(0): correct_delta avg 26986753434205153, min -117251, max 1700165466349148784, cnt 63
MT: 2023-11-16 21:06:53, PTP(0): path_delay avg 27894, min 1341, max 516558, cnt 63
MT: 2023-11-16 21:06:53, PTP(0): mode l4, sync cnt 79, expect avg -241:[email protected]
MT: 2023-11-16 21:06:53, PTP(0): rx time error 0, tx time error 0, delta result error 16
MT: 2023-11-16 21:06:53, RX_VIDEO_SESSION(0,0:app_rx_video_0): fps 27.526099 frames 267 pkts 1105268
MT: 2023-11-16 21:06:53, RX_VIDEO_SESSION(0,0:app_rx_video_0): throughput 1170.063109 Mb/s, cpu busy 0.388312
MT: 2023-11-16 21:06:53, RX_VIDEO_SESSION(0,0): incomplete frames 3, pkts (idx error: 0, offset error: 0, idx out of bitmap: 0, missed: 7608)
MT: 2023-11-16 21:06:53, * * E N D S T A T E * *

...

^Cst_app_sig_handler, signal 2
main, start to ending
MT: 2023-11-16 21:12:19, sch_tasklet_func(0), end with 3 tasklets
MT: 2023-11-16 21:12:19, cni_traffic_thread, start
MT: 2023-11-16 21:12:19, mt_sch_put_lcore, lcore 4
MT: 2023-11-16 21:12:19, sch_stop(0), succ
MT: 2023-11-16 21:12:19, mt_sch_stop_all, succ
MT: 2023-11-16 21:12:19, _mt_stop, succ
app_rx_video_result(0), FAILED, fps 29.984672, 10045 frame received
st_app_uinit_display(app_rx_video_0), wait display thread stop
display_thread_func(app_rx_video_0), stop
app_rx_video_uinit(0), wait app thread stop
app_rx_video_frame_thread(0), stop
MT: 2023-11-16 21:12:19, st20_rx_free(0,0), start
MT: 2023-11-16 21:12:19, RX_VIDEO_SESSION(0,0:app_rx_video_0): fps 29.831999 frames 183 pkts 755081
MT: 2023-11-16 21:12:19, RX_VIDEO_SESSION(0,0:app_rx_video_0): throughput 799.347344 Mb/s, cpu busy 0.626533
MT: 2023-11-16 21:12:19, mt_mcast_leave(0), group 239.168.84.1 ref cnt 0
MT: 2023-11-16 21:12:19, mt_dev_put_rx_queue(0), q 1
MT: 2023-11-16 21:12:19, sch_free_quota(0), quota 3883 total now 0
MT: 2023-11-16 21:12:19, st20_rx_free, succ on sch 0 session 0
MT: 2023-11-16 21:12:19, mt_mcast_leave(0), group 224.0.1.129 ref cnt 0
MT: 2023-11-16 21:12:19, ptp_uinit(0), succ
MT: 2023-11-16 21:12:19, st22_decoder_unregister(0), unregister st22_decoder_sample
MT: 2023-11-16 21:12:19, st22_encoder_unregister(0), unregister st22_encoder_sample
st_plugin_free, succ with st22 sample plugin

2160p TX session following the run guide not working entirely.

I am able to run successfully a 1080p59 tx session in Windows following the run guide.

I was trying to test 2160p59 tx, by following the run guide but changing the file to download to be https://www.larmoire.info/jellyfish/media/jellyfish-120-mbps-4k-uhd-hevc-10bit.mkv and then changing up all the parameters for ffmpeg and ConvApp to do 3840x2160. The commands are as follows:

ffmpeg -i jellyfish-120-mbps-4k-uhd-hevc-10bit.mkv -vframes 2 -c:v rawvideo yuv420p10le_2160p.yuv
ffmpeg -s 3840x2160 -pix_fmt yuv420p10le -i yuv420p10le_2160p.yuv -pix_fmt yuv422p10le yuv422p10le_2160p.yuv
build\app\ConvApp -width 3840 -height 2160 -in_pix_fmt yuv422p10le -i yuv420p10le_2160p.yuv -out_pix_fmt yuv422rfc4175be10 -o yuv422rfc4175be10_2160p.yuv

The weird thing is that the ConvApp says it converts 1 frame only. If I instead do the ffmpeg steps for 3 frames, the Convapp will say it converts 2 frames. I believe something is wrong with the ConvApp or the parameters need to be different for 2160p that I don't know about. It think the problem I see later is due to this.

In any case, if I do a tx session, with the converted file (the one that the ConvApp said did 2 frames), the tx starts, but looking at it with another receiver, you can see the colors are off and it's shifted... after a few minutes the tx stops too...

Have you tried your steps, but with 2160p? Is there something wrong with the ConvApp or maybe the parameters I use?

Thank you!

Are the following features supported?

Hello, I would like to know if the Media Transport Library supports the following features:

  • 2110-31 Rx/Tx using AES audio buffers? If not, is there a plan to support it in the future?
  • Video, Audio, Ancillary Tx with 2022-7 enabled?
  • Our application will need to regularly retrieve the PTP time from the NIC. Is setting ctx.param.ptp_get_time_fn to NULL and then calling mtl_ptp_read_time(ctx.st) the correct way to achieve this? Is there any drawback or performance concerns with this approach?

2022-7 testing with a prism

We have implemented the library under linux and have it outputting 2022-7. We are monitoring with a prism for compliance. The output is valid for a single output but when we enable the second output, we are getting a small number of "rtp sequence errors" on the prism. They seem to coincide with the stats not showing the exact same number of packets transmitted on both interface on the stats.

My question is, per stats interval, are the number of tx packet supposed to be the same? or perhaps it needs to average over time?

For example:

@40000000656586e405a2f094 MT: 2023-11-28 06:21:14, * * M T D E V S T A T E * *
@40000000656586e405c15da4 MT: 2023-11-28 06:21:14, DEV(0): Avr rate, tx: 1093.865350 Mb/s, rx: 0.000000 Mb/s, pkts, tx: 1038765, rx: 0
@40000000656586e405f1dbb4 MT: 2023-11-28 06:21:14, DEV(1): Avr rate, tx: 1093.867466 Mb/s, rx: 0.000000 Mb/s, pkts, tx: 1038768, rx: 0
@40000000656586e406021024 MT: 2023-11-28 06:21:14, CNI(0): eth_rx_rate 0.000000 Mb/s, eth_rx_cnt 0
@40000000656586e406021bdc MT: 2023-11-28 06:21:14, CNI(1): eth_rx_rate 0.000000 Mb/s, eth_rx_cnt 0
@40000000656586e406023734 MT: 2023-11-28 06:21:14, PTP(0): time 1701152474100802731, 2023-11-28 06:21:14
@40000000656586e406023f04 MT: 2023-11-28 06:21:14, PTP(1): time 1701152474100807187, 2023-11-28 06:21:14
@40000000656586e40602528c MT: 2023-11-28 06:21:14, TX_VIDEO_SESSION(0,0:TEST-VIDEO): fps 50.000083, frame 500 pkts 1029988:2057976 inflight 58245:54186
@40000000656586e406026614 MT: 2023-11-28 06:21:14, TX_VIDEO_SESSION(0,0): throughput 1089.061111 Mb/s: 1089.061111 Mb/s, cpu busy 77.527145
@40000000656586e406026de4 MT: 2023-11-28 06:21:14, TX_VIDEO_SESSION(0,0): dummy pkts 1000, burst 2000
@40000000656586e40602893c MT: 2023-11-28 06:21:14, TX_AUDIO_SESSION(0,0:Test Audio): fps 1000.001617 frame cnt 10000, pkt cnt 10000, inflight count 0: 0
@40000000656586e4060294f4 MT: 2023-11-28 06:21:14, TX_AUDIO_MGR(0), pkts burst 20000
@40000000656586e406029cc4 MT: 2023-11-28 06:21:14, * * E N D S T A T E * *

You can see that we have dev0 has 1038765 and dev1 has 1038768 ...

Idea: MTL handle optional log callback

I would strongly suggest adding an optional callback in the mtl_init_params structure for the logs.

Right now, printf is imposed and when MTL is integrated in another project that must capture its logs this becomes a bit complicated.

To mimic printf, the signature of this callback could be:

int (*)(mtl_log_level level, const char *format, ...);

and only if the log is above the specified the log level in mtl_init_params would this callback be called.

810-XXV 25G Compatibility

Please let me konw if 25G version of 810 interface works with MTL.
I compiled the library and drivers for win2019srv, everything seems to work fine but i experience lots of hw_drops. I put down here the output of 1080p59_1v.json

C:\msys64\home\Administrator\mman-win32\Media-Transport-Library\build\app>RxTxApp --config_file 1080p59_1v.json --tasklet_time
st_app_parse_json, using json-c version: 0.17
app_args_json, json_file 1080p59_1v.json succ
MT: MT: 2024-01-19 21:07:34, dev_eal_init(0), port_param: 0000:3b:00.0
MT: MT: 2024-01-19 21:07:34, dev_eal_init(1), port_param: 0000:3b:00.1
MT: MT: 2024-01-19 21:07:34, dev_eal_init, wait eal_init_thread done
EAL: Detected CPU lcores: 56
EAL: Detected NUMA nodes: 2
EAL: Probe PCI driver: net_ice (8086:159b) device: 0000:3b:00.0 (socket 0)
ice_dev_init(): Failed to read device serial number

ice_load_pkg_type(): Active package is: 1.3.35.0, ICE OS Default Package (double VLAN mode)
EAL: Probe PCI driver: net_ice (8086:159b) device: 0000:3b:00.1 (socket 0)
ice_dev_init(): Failed to read device serial number

ice_load_pkg_type(): Active package is: 1.3.35.0, ICE OS Default Package (double VLAN mode)
MT: MT: 2024-01-19 21:07:34, MTL version: 24.4.0 Mon Jan 15 19:03:55 2024 3b4ee9a-dirty gcc-13.2.0, dpdk version: DPDK 23.11.0
MT: MT: 2024-01-19 21:07:34, mtl_init(0), socket_id 0 port 0000:3b:00.0
MT: MT: 2024-01-19 21:07:34, mtl_init(1), socket_id 0 port 0000:3b:00.1
MT: MT: 2024-01-19 21:07:34, mt_stat_init, stat period 10s
MT: MT: 2024-01-19 21:07:34, stat_thread, start
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(0), use user ptp source
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(0), user request queues tx 5 rx 0
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(0), deprecated sessions tx 0 rx 0
MT: MT: 2024-01-19 21:07:34, dev_config_port(0), tx_q(6 with 512 desc) rx_q (1 with 2048 desc)
MT: MT: 2024-01-19 21:07:34, mt_mempool_create_by_ops(0), succ at 00000157716fdf00 size 3.234375m n 1536 d 2048 for T_P0_SYS_0
MT: MT: 2024-01-19 21:07:34, dev_if_init_tx_queues(0), tx_queues 6 malloc succ
MT: MT: 2024-01-19 21:07:34, mt_mempool_create_by_ops(0), succ at 0000015771cfdf00 size 6.468750m n 3072 d 2048 for R_P0Q0_MBUF_1
MT: MT: 2024-01-19 21:07:34, dev_if_init_rx_queues(0), rx_queues 1 malloc succ
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(0), port_id 0 port_type 2 drv_type 1
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(0), dev_capa 0x0, offload 0x1181bf:0x19666f queue offload 0x10000:0x100000, rss : 0x7ffc
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(0), system_rx_queues_end 1 hdr_split_rx_queues_end 1
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(0), sip: 192.168.17.101
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(0), netmask: 255.255.255.0
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(0), gateway: 0.0.0.0
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(0), mac: 50:7c:6f:52:14:2a
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(1), use user ptp source
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(1), user request queues tx 4 rx 1
MT: MT: 2024-01-19 21:07:34, mt_dev_if_init(1), deprecated sessions tx 0 rx 0
MT: MT: 2024-01-19 21:07:34, dev_config_port(1), tx_q(5 with 512 desc) rx_q (2 with 2048 desc)
MT: MT: 2024-01-19 21:07:34, mt_mempool_create_by_ops(1), succ at 00000157726fdf00 size 3.234375m n 1536 d 2048 for T_P1_SYS_2
MT: MT: 2024-01-19 21:07:34, dev_if_init_tx_queues(1), tx_queues 5 malloc succ
MT: MT: 2024-01-19 21:07:34, mt_mempool_create_by_ops(1), succ at 0000015772cfdf00 size 6.468750m n 3072 d 2048 for R_P1Q0_MBUF_3
MT: MT: 2024-01-19 21:07:34, mt_mempool_create_by_ops(1), succ at 00000157736fdf00 size 4.968750m n 3072 d 1536 for R_P1Q1_MBUF_4
MT: MT: 2024-01-19 21:07:34, dev_if_init_rx_queues(1), rx_queues 2 malloc succ
MT: MT: 2024-01-19 21:07:35, mt_dev_if_init(1), port_id 1 port_type 2 drv_type 1
MT: MT: 2024-01-19 21:07:35, mt_dev_if_init(1), dev_capa 0x0, offload 0x1181bf:0x19666f queue offload 0x10000:0x100000, rss : 0x7ffc
MT: MT: 2024-01-19 21:07:35, mt_dev_if_init(1), system_rx_queues_end 1 hdr_split_rx_queues_end 1
MT: MT: 2024-01-19 21:07:35, mt_dev_if_init(1), sip: 192.168.17.102
MT: MT: 2024-01-19 21:07:35, mt_dev_if_init(1), netmask: 255.255.255.0
MT: MT: 2024-01-19 21:07:35, mt_dev_if_init(1), gateway: 0.0.0.0
MT: MT: 2024-01-19 21:07:35, mt_dev_if_init(1), mac: 50:7c:6f:52:14:2b
ice_set_rx_function(): Using AVX2 Vector Rx (port 0).
MT: MT: 2024-01-19 21:07:35, dev_start_port(0), rx_defer 0
MT: MT: 2024-01-19 21:07:35, mt_eth_link_dump(0), link_speed 25g link_status 1 link_duplex 1 link_autoneg 1
MT: MT: 2024-01-19 21:07:35, dev_if_init_pacing(0), try rl as drv support TM
MT: MT: 2024-01-19 21:07:35, dev_rl_shaper_add(0), bps 134217728 on shaper 1
MT: MT: 2024-01-19 21:07:35, dev_tx_queue_set_rl_rate(0), q 0 link to shaper id 1(134217728)
MT: MT: 2024-01-19 21:07:35, mt_dev_create(0), feature 0x70, tx pacing ratelimit
ice_set_rx_function(): Using AVX2 Vector Rx (port 1).
MT: MT: 2024-01-19 21:07:35, dev_start_port(1), rx_defer 0
MT: MT: 2024-01-19 21:07:35, mt_eth_link_dump(1), link_speed 25g link_status 1 link_duplex 1 link_autoneg 1
MT: MT: 2024-01-19 21:07:35, dev_if_init_pacing(1), try rl as drv support TM
MT: MT: 2024-01-19 21:07:35, dev_rl_shaper_add(1), bps 134217728 on shaper 1
MT: MT: 2024-01-19 21:07:35, dev_tx_queue_set_rl_rate(1), q 0 link to shaper id 1(134217728)
MT: MT: 2024-01-19 21:07:35, mt_dev_create(1), feature 0x70, tx pacing ratelimit
MT: MT: 2024-01-19 21:07:35, sch_lcore_shm_init, clear shm as we are the first user
MT: MT: 2024-01-19 21:07:35, sch_lcore_shm_init, shared memory attached at 0000015f709c0000 nattch 1 shm_id 0 key 0x0
MT: MT: 2024-01-19 21:07:35, mt_sch_mrg_init, succ with data quota 31068 M
MT: MT: 2024-01-19 21:07:35, sch_request(0), name sch_0 with 16 tasklets
MT: MT: 2024-01-19 21:07:35, mt_sch_add_quota(0:0), quota 0 total now 0
MT: MT: 2024-01-19 21:07:35, mt_dev_get_tx_queue(0), q 0 with speed 1.073742g bps
MT: MT: 2024-01-19 21:07:35, mt_dev_get_tx_queue(1), q 0 with speed 1.073742g bps
MT: MT: 2024-01-19 21:07:35, mt_mcast_init, report every 10 seconds
MT: MT: 2024-01-19 21:07:35, mt_dev_get_rx_queue(0), q 0 ip 0.0.0.0 port 0
MT: MT: 2024-01-19 21:07:35, cni_queues_init(0), rxq 0
MT: MT: 2024-01-19 21:07:35, mt_dev_get_rx_queue(1), q 0 ip 0.0.0.0 port 0
MT: MT: 2024-01-19 21:07:35, cni_queues_init(1), rxq 0
MT: MT: 2024-01-19 21:07:35, mtl_sch_register_tasklet(0), tasklet cni registered into slot 0
MT: MT: 2024-01-19 21:07:35, st_plugins_init, succ
MT: MT: 2024-01-19 21:07:35, cni_traffic_thread, start
MT: MT: 2024-01-19 21:07:35, admin_thread, start
MT: MT: 2024-01-19 21:07:35, Warn: config_parse_json, open json file kahawai.json fail
MT: MT: 2024-01-19 21:07:35, mt_ptp_port_id(0), port_number: 0000, clk_id: 50:7c:6f:ff:fe:52:14:2a
MT: MT: 2024-01-19 21:07:35, mt_ptp_port_id(1), port_number: 0100, clk_id: 50:7c:6f:ff:fe:52:14:2b
MT: MT: 2024-01-19 21:07:35, mt_main_create, succ
MT: MT: 2024-01-19 21:07:35, mtl_init, succ, tsc_hz 2590000000
MT: MT: 2024-01-19 21:07:35, mtl_init, simd level avx512, flags 0x400000001d
MT: MT: 2024-01-19 21:07:35, st20_tx_create, start for app_tx_video_0
MT: MT: 2024-01-19 21:07:35, mt_sch_add_quota(0:0), quota 2589 total now 2589
MT: MT: 2024-01-19 21:07:35, mt_sch_get(0), succ with quota_mbs 2589
MT: MT: 2024-01-19 21:07:35, mtl_sch_register_tasklet(0), tasklet tx_video_sessions_mgr registered into slot 1
MT: MT: 2024-01-19 21:07:35, tv_mgr_init(0), succ
MT: MT: 2024-01-19 21:07:35, mtl_sch_register_tasklet(0), tasklet video_transmitter registered into slot 2
MT: MT: 2024-01-19 21:07:35, st_video_transmitter_init(0), succ
MT: MT: 2024-01-19 21:07:35, tv_attach(0), st21_vrx_narrow: 9, st21_vrx_wide: 822
MT: MT: 2024-01-19 21:07:35, mt_mempool_create_by_ops(0), succ at 0000015773efdf00 size 0.281250m n 1024 d 128 for TV_M0S0P0_HDR_0_5
MT: MT: 2024-01-19 21:07:35, mt_mempool_create_by_ops(0), succ at 00000157740fdf00 size 1.375000m n 1024 d 1280 for TV_M0S0_CHAIN_0_6
MT: MT: 2024-01-19 21:07:35, tv_frame_create_page_table(0,0), hugepage size 2097152
MT: MT: 2024-01-19 21:07:35, tv_frame_create_page_table(0,0), seg 0, va 000001577450e600, iova 0x1042f0e600, len 989696
MT: MT: 2024-01-19 21:07:35, tv_frame_create_page_table(0,0), seg 1, va 0000015774600000, iova 0x103ec00000, len 2097152
MT: MT: 2024-01-19 21:07:35, tv_frame_create_page_table(0,0), seg 2, va 0000015774800000, iova 0x103cc00000, len 2097152
MT: MT: 2024-01-19 21:07:35, tv_frame_create_page_table(0,1), hugepage size 2097152
MT: MT: 2024-01-19 21:07:35, tv_frame_create_page_table(0,1), seg 0, va 0000015774b0e600, iova 0x103f10e600, len 989696
MT: MT: 2024-01-19 21:07:35, tv_frame_create_page_table(0,1), seg 1, va 0000015774c00000, iova 0x2f7200000, len 2097152
MT: MT: 2024-01-19 21:07:35, tv_frame_create_page_table(0,1), seg 2, va 0000015774e00000, iova 0x103d200000, len 2097152
MT: MT: 2024-01-19 21:07:35, dev_rl_shaper_add(0), bps 326075724 on shaper 2
MT: MT: 2024-01-19 21:07:35, dev_tx_queue_set_rl_rate(0), q 1 link to shaper id 2(326075724)
MT: MT: 2024-01-19 21:07:35, mt_dev_get_tx_queue(0), q 1 with speed 2.608606g bps
MT: MT: 2024-01-19 21:07:35, tv_init_hw(0,0), port(l:0,p:0), queue 1, count 512
MT: MT: 2024-01-19 21:07:35, tv_init_hw(0), type 0 number 3086 size 1322
MT: MT: 2024-01-19 21:07:35, tv_init_hw(0), type 1 number 1028 size 1328
MT: MT: 2024-01-19 21:07:35, tv_init_hw(0), type 2 number 1 size 422
MT: MT: 2024-01-19 21:07:35, mt_arp_cni_get_mac(0), 192.168.17.102 alloc at 0
MT: MT: 2024-01-19 21:07:36, mt_calibrate_tsc, tscHz 2593906304
MT: MT: 2024-01-19 21:07:36, arp_receive_request(1), send to 192.168.17.101
MT: MT: 2024-01-19 21:07:36, arp_receive_reply(0), from 192.168.17.102, mac: 50:7c:6f:52:14:2b
MT: MT: 2024-01-19 21:07:37, tv_init_hdr(0,0), ip 192.168.17.102 port 20000:20000
MT: MT: 2024-01-19 21:07:37, tv_init_hdr(0), mac: 50:7c:6f:52:14:2b, ssrc 1193040
MT: MT: 2024-01-19 21:07:37, tv_train_pacing(0), user static pad_interval 262
MT: MT: 2024-01-19 21:07:37, tv_init_pacing[00], trs 3892.102066 trOffset 637674.074074 vrx 5 warm_pkts 128 frame time 16.683333ms fps 59.940060
MT: MT: 2024-01-19 21:07:37, tv_attach(0), len 1260(1322) total 4115 each line 0 type 0 flags 0x0, progressive
MT: MT: 2024-01-19 21:07:37, tv_attach(0), w 1920 h 1080 fmt ST20_FMT_YUV_422_10BIT packing 0 pt 112, pacing way: ratelimit
MT: MT: 2024-01-19 21:07:37, st20_tx_create(0,0), succ on 000001577360be40
MT: MT: 2024-01-19 21:07:37, mt_sch_get_lcore, available lcore 1
st_app_video_get_lcore, new lcore 1 for sch idx 0
MT: MT: 2024-01-19 21:07:40, sch_request(1), name sch_1 with 16 tasklets
app_tx_video_frame_thread(0MT: MT: 2024-01-19 21:07:40, mt_sch_add_quota(1:1), quota 2589 total now 2589
), start
MT: MT: 2024-01-19 21:07:40, mtl_sch_register_tasklet(1), tasklet rvs_pkt_rx registered into slot 0
MT: MT: 2024-01-19 21:07:40, rvs_mgr_init(1), succ
MT: MT: 2024-01-19 21:07:40, rte_rx_flow_create(1), queue 1 succ, ip 192.168.17.101 port 20000
MT: MT: 2024-01-19 21:07:40, mt_dev_get_rx_queue(1), q 1 ip 192.168.17.101 port 20000
MT: MT: 2024-01-19 21:07:40, rv_init_hw(0), port(l:0,p:1), queue 1 udp 20000
MT: MT: 2024-01-19 21:07:40, rv_init_dma(0), fail, can not request dma dev
MT: MT: 2024-01-19 21:07:40, rv_attach(0), 6 frames with size 5184000(810,0), type 0, progressive
MT: MT: 2024-01-19 21:07:40, rv_attach(0), w 1920 h 1080 fmt ST20_FMT_YUV_422_10BIT packing 0 pt 112 flags 0x20000 frame time 16.683333ms fps 59.940060
MT: MT: 2024-01-19 21:07:40, mt_sch_add_quota(1:1), quota 1294 total now 3883
MT: MT: 2024-01-19 21:07:40, st20_rx_create_with_mask, succ on sch 1 session 0
MT: MT: 2024-01-19 21:07:40, mt_sch_get_lcore, available lcore 2
MT: MT: 2024-01-19 21:07:40, sch_start(0), succ on lcore 2
MT: MT: 2024-01-19 21:07:40, sch_tasklet_func(0), start with 3 tasklets
MT: MT: 2024-01-19 21:07:40, mt_sch_get_lcore, available lcore 3
MT: MT: 2024-01-19 21:07:40, cni_traffic_thread, stop
MT: MT: 2024-01-19 21:07:40, sch_start(1), succ on lcore 3
MT: MT: 2024-01-19 21:07:40, mt_dev_start, succ
MT: MT: 2024-01-19 21:07:40, video_trs_tasklet_start(0), succ
MT: MT: 2024-01-19 21:07:40, sch_tasklet_func(1), start with 1 tasklets
MT: MT: 2024-01-19 21:07:40, _mt_start, succ, avail ports 2
MT: SDL_main, app lunch succ, test time 0s
MT: 2024-01-19 21:07:40, rvs_pkt_rx_tasklet_start(1), succ
MT: MT: 2024-01-19 21:07:44, * * M T D E V S T A T E * *
MT: MT: 2024-01-19 21:07:44, DEV(0): Avr rate, tx: 1107.020370 Mb/s, rx: 0.000048 Mb/s, pkts, tx: 1045752, rx: 1
MT: MT: 2024-01-19 21:07:44, DEV(1): Avr rate, tx: 0.000048 Mb/s, rx: 1070.425202 Mb/s, pkts, tx: 1, rx: 1011149
MT: MT: 2024-01-19 21:07:44, SCH(0:sch_0): tasklets 3, lcore 2, avg loop 229 ns
MT: MT: 2024-01-19 21:07:44, SCH(0,0): tasklet cni, avg 0.03us max 27.73us min 0.03us
MT: MT: 2024-01-19 21:07:44, SCH(0,1): tasklet tx_video_sessions_mgr, avg 0.07us max 51.95us min 0.03us
MT: MT: 2024-01-19 21:07:44, SCH(0,2): tasklet video_transmitter, avg 0.08us max 65.51us min 0.03us
MT: MT: 2024-01-19 21:07:44, SCH(1:sch_1): tasklets 1, lcore 3, avg loop 112 ns
MT: MT: 2024-01-19 21:07:44, SCH(1,0): tasklet rvs_pkt_rx, avg 0.09us max 37.68us min 0.03us
MT: MT: 2024-01-19 21:07:44, CNI(0): eth_rx_rate 0.000048 Mb/s, eth_rx_cnt 1
MT: MT: 2024-01-19 21:07:44, CNI(1): eth_rx_rate 0.000048 Mb/s, eth_rx_cnt 1
MT: MT: 2024-01-19 21:07:44, PTP(0): time 1705691227941737400, 2024-01-19 21:07:07
MT: MT: 2024-01-19 21:07:44, PTP(1): time 1705691227944056800, 2024-01-19 21:07:07
MT: MT: 2024-01-19 21:07:44, TX_VIDEO_SESSION(0,0:app_tx_video_0): fps 32.139804, frame 247 pkts 1018664:1017905 inflight 61031:61064
MT: MT: 2024-01-19 21:07:44, TX_VIDEO_SESSION(0,0): throughput 1402.153066 Mb/s: 0.000000 Mb/s, cpu busy 0.000000
MT: MT: 2024-01-19 21:07:44, TX_VIDEO_SESSION(0,0): mismatch epoch troffset 1
MT: MT: 2024-01-19 21:07:44, TX_VIDEO_SESSION(0,0): epoch drop 1
MT: MT: 2024-01-19 21:07:44, TX_VIDEO_SESSION(0,0): tasklet time avg 0.01us max 33.75us min 0.01us
MT: MT: 2024-01-19 21:07:44, RX_VIDEO_SESSION(1,0:app_rx_video_0): fps 58.692773 frames 247 pkts 1017905
MT: MT: 2024-01-19 21:07:44, RX_VIDEO_SESSION(1,0:app_rx_video_0): throughput 1077.579085 Mb/s, cpu busy 0.000000
MT: MT: 2024-01-19 21:07:44, RX_VIDEO_SESSION(1,0): succ burst max 11, avg 1.037667
MT: MT: 2024-01-19 21:07:44, RX_VIDEO_SESSION(1,0): tasklet time avg 0.03us max 36.74us min 0.02us
app_rx_video_stat(0), avrage latency 16.021866ms
MT: MT: 2024-01-19 21:07:44, * * E N D S T A T E * *

MT: MT: 2024-01-19 21:07:54, * * M T D E V S T A T E * *
MT: MT: 2024-01-19 21:07:54, DEV(0): Avr rate, tx: 2697.435824 Mb/s, rx: 0.000000 Mb/s, pkts, tx: 2548142, rx: 0
MT: MT: 2024-01-19 21:07:54, DEV(1): Avr rate, tx: 0.000000 Mb/s, rx: 2606.246402 Mb/s, pkts, tx: 0, rx: 2461294
MT: MT: 2024-01-19 21:07:54, Error: DEV(1): Status: rx_hw_dropped_packets 624 rx_err_packets 0 rx_nombuf_packets 0 tx_err_packets 0
MT: MT: 2024-01-19 21:07:54, Error: rx_good_packets: 1804
MT: MT: 2024-01-19 21:07:54, Error: rx_good_bytes: 2388920
MT: MT: 2024-01-19 21:07:54, Error: rx_unicast_packets: 1794
MT: MT: 2024-01-19 21:07:54, Error: rx_multicast_packets: 7
MT: MT: 2024-01-19 21:07:54, Error: rx_unknown_protocol_packets: 7
MT: MT: 2024-01-19 21:07:54, Error: rx_size_1024_to_1522_packets: 1802
MT: MT: 2024-01-19 21:07:54, SCH(0:sch_0): tasklets 3, lcore 2, avg loop 228 ns
MT: MT: 2024-01-19 21:07:54, SCH(0,0): tasklet cni, avg 0.03us max 46.21us min 0.03us
MT: MT: 2024-01-19 21:07:54, SCH(0,1): tasklet tx_video_sessions_mgr, avg 0.07us max 27.96us min 0.03us
MT: MT: 2024-01-19 21:07:54, SCH(0,2): tasklet video_transmitter, avg 0.08us max 37.80us min 0.03us
MT: MT: 2024-01-19 21:07:54, SCH(1:sch_1): tasklets 1, lcore 3, avg loop 112 ns
MT: MT: 2024-01-19 21:07:54, SCH(1,0): tasklet rvs_pkt_rx, avg 0.09us max 80.83us min 0.03us
MT: MT: 2024-01-19 21:07:54, CNI(0): eth_rx_rate 0.000000 Mb/s, eth_rx_cnt 0
MT: MT: 2024-01-19 21:07:54, CNI(1): eth_rx_rate 0.000000 Mb/s, eth_rx_cnt 0
MT: MT: 2024-01-19 21:07:54, PTP(0): time 1705691237958222100, 2024-01-19 21:07:17
MT: MT: 2024-01-19 21:07:54, PTP(1): time 1705691237960883600, 2024-01-19 21:07:17
MT: MT: 2024-01-19 21:07:54, TX_VIDEO_SESSION(0,0:app_tx_video_0): fps 59.805570, frame 599 pkts 2467240:2466640 inflight 147893:147967
MT: MT: 2024-01-19 21:07:54, TX_VIDEO_SESSION(0,0): throughput 2607.128471 Mb/s: 0.000000 Mb/s, cpu busy 1.464504
MT: MT: 2024-01-19 21:07:54, TX_VIDEO_SESSION(0,0): mismatch epoch troffset 1
MT: MT: 2024-01-19 21:07:54, TX_VIDEO_SESSION(0,0): epoch drop 1
MT: MT: 2024-01-19 21:07:54, TX_VIDEO_SESSION(0,0): build timeout frames 1
MT: MT: 2024-01-19 21:07:54, TX_VIDEO_SESSION(0,0): tasklet time avg 0.01us max 25.91us min 0.01us
MT: MT: 2024-01-19 21:07:54, TX_VIDEO_SESSION(0,0): get next frame max 11us, notify done max 12us
MT: MT: 2024-01-19 21:07:54, RX_VIDEO_SESSION(1,0:app_rx_video_0): fps 59.662421 frames 598 pkts 2466016
MT: MT: 2024-01-19 21:07:55, RX_VIDEO_SESSION(1,0:app_rx_video_0): throughput 2610.585030 Mb/s, cpu busy 0.959207
MT: MT: 2024-01-19 21:07:55, RX_VIDEO_SESSION(1,0): incomplete frames 1, pkts (idx error: 0, offset error: 0, idx out of bitmap: 0, missed: 623)
MT: MT: 2024-01-19 21:07:55, RX_VIDEO_SESSION(1,0): succ burst max 128, avg 1.038926
MT: MT: 2024-01-19 21:07:55, RX_VIDEO_SESSION(1,0): tasklet time avg 0.03us max 55.47us min 0.02us
app_rx_video_stat(0), avrage latency 16.021890ms
MT: MT: 2024-01-19 21:07:55, * * E N D S T A T E * *

MT: MT: 2024-01-19 21:08:04, * * M T D E V S T A T E * *
MT: MT: 2024-01-19 21:08:04, DEV(0): Avr rate, tx: 2697.008346 Mb/s, rx: 0.000000 Mb/s, pkts, tx: 2547737, rx: 0
MT: MT: 2024-01-19 21:08:04, DEV(1): Avr rate, tx: 0.000000 Mb/s, rx: 2602.774984 Mb/s, pkts, tx: 0, rx: 2448890
MT: MT: 2024-01-19 21:08:04, Error: DEV(1): Status: rx_hw_dropped_packets 9749 rx_err_packets 0 rx_nombuf_packets 0 tx_err_packets 0
MT: MT: 2024-01-19 21:08:04, Error: rx_good_packets: 2875
MT: MT: 2024-01-19 21:08:04, Error: rx_good_bytes: 3802826
MT: MT: 2024-01-19 21:08:04, Error: rx_unicast_packets: 2864
MT: MT: 2024-01-19 21:08:04, Error: rx_multicast_packets: 139
MT: MT: 2024-01-19 21:08:04, Error: rx_unknown_protocol_packets: 139
MT: MT: 2024-01-19 21:08:04, Error: rx_size_256_to_511_packets: 1
MT: MT: 2024-01-19 21:08:05, Error: rx_size_1024_to_1522_packets: 3002
MT: MT: 2024-01-19 21:08:05, SCH(0:sch_0): tasklets 3, lcore 2, avg loop 229 ns
MT: MT: 2024-01-19 21:08:05, SCH(0,0): tasklet cni, avg 0.03us max 39.52us min 0.03us
MT: MT: 2024-01-19 21:08:05, SCH(0,1): tasklet tx_video_sessions_mgr, avg 0.07us max 65.38us min 0.03us
MT: MT: 2024-01-19 21:08:05, SCH(0,2): tasklet video_transmitter, avg 0.08us max 48.54us min 0.03us
MT: MT: 2024-01-19 21:08:05, SCH(1:sch_1): tasklets 1, lcore 3, avg loop 112 ns
MT: MT: 2024-01-19 21:08:05, SCH(1,0): tasklet rvs_pkt_rx, avg 0.09us max 63.88us min 0.03us
MT: MT: 2024-01-19 21:08:05, CNI(0): eth_rx_rate 0.000000 Mb/s, eth_rx_cnt 0
MT: MT: 2024-01-19 21:08:05, CNI(1): eth_rx_rate 0.000000 Mb/s, eth_rx_cnt 0
MT: MT: 2024-01-19 21:08:05, PTP(0): time 1705691248092274900, 2024-01-19 21:07:28
MT: MT: 2024-01-19 21:08:05, PTP(1): time 1705691248095237900, 2024-01-19 21:07:28
MT: MT: 2024-01-19 21:08:05, TX_VIDEO_SESSION(0,0:app_tx_video_0): fps 59.875354, frame 607 pkts 2497200:2496592 inflight 149751:149829
MT: MT: 2024-01-19 21:08:05, TX_VIDEO_SESSION(0,0): throughput 2607.046293 Mb/s: 0.000000 Mb/s, cpu busy 1.458081
MT: MT: 2024-01-19 21:08:05, TX_VIDEO_SESSION(0,0): transmitter mismatch troffset 3
MT: MT: 2024-01-19 21:08:05, TX_VIDEO_SESSION(0,0): epoch drop 1
MT: MT: 2024-01-19 21:08:05, TX_VIDEO_SESSION(0,0): build timeout frames 1
MT: MT: 2024-01-19 21:08:05, TX_VIDEO_SESSION(0,0): tasklet time avg 0.01us max 65.07us min 0.01us
MT: MT: 2024-01-19 21:08:05, TX_VIDEO_SESSION(0,0): get next frame max 10us, notify done max 3us
MT: MT: 2024-01-19 21:08:05, RX_VIDEO_SESSION(1,0:app_rx_video_0): fps 59.467431 frames 604 pkts 2486843
MT: MT: 2024-01-19 21:08:05, RX_VIDEO_SESSION(1,0:app_rx_video_0): throughput 2632.631590 Mb/s, cpu busy 0.959207
MT: MT: 2024-01-19 21:08:05, RX_VIDEO_SESSION(1,0): incomplete frames 2, pkts (idx error: 0, offset error: 0, idx out of bitmap: 0, missed: 5634)
MT: MT: 2024-01-19 21:08:05, RX_VIDEO_SESSION(1,0): succ burst max 128, avg 1.039346
MT: MT: 2024-01-19 21:08:05, RX_VIDEO_SESSION(1,0): tasklet time avg 0.03us max 63.82us min 0.02us
app_rx_video_stat(0), avrage latency 16.026108ms
MT: MT: 2024-01-19 21:08:05, * * E N D S T A T E * *

thanks

Link status is not correclty updated for E810 NIC on Windows

Hello,

I have an issue regarding the link status when using a Intel E810 NIC with DPDK.

I have a simple sample which simply loops, call rte_eth_link_get and prints the result.

When using a E810 NIC, I have the following behaviour :

  • At the start of the test, the cable is plugged in;
  • I launch the sample, the link is reported as up (as expected)
  • I unplug the cable
  • The link is still reported as up in the sample (not expected).
  • I stop the sample and relaunch it
  • The link is reported as down by the sample (as expected)
  • I replug the cable
  • The link is still reported as down by the sample (not expected).

I looks like, once DPDK is started, the link status of the device is not correctly updated.

When trying this with an XXV710, i have no issue.

According to the Overview of Networking Drivers, the ice driver is compatible "Link Status" and "Link Status Event" functionalities.


Setup:

  • DPDK v22.11.1
  • DDPD : ice-1.3.30.0.pkg.

I am not sure that this is the right place to post this issue, but I did not know where to post it.

If there is a better way to report this issue, you can ignore this and point me to the right direction. :)

Regarding RxTxApp RTP mode with a pcap source.

Hello,

It was my understanding that RTP mode would update the RTP sequence numbers when reading from a pcap as a source. Is this this incorrect? Basically, I have a 1 second capture that I would like to transmit, but the stream needs to be valid for longer than the one second. Every second the pcap loops over, the outgoing stream has a sequence error.

Here is the the json config I am using:

{
"interfaces": [
{
"name": "0000:51:00.0",
"ip": "10.211.2.62"
},
{
"name": "0000:51:00.1",
"ip": "10.211.2.63"
}
],
"tx_sessions": [
{
"dip": [
"10.211.2.62",
"10.211.2.63"
],
"interface": [
1,
0
],
"video": [
{
"replicas": 1,
"type": "rtp",
"pacing": "gap",
"packing": "BPM",
"start_port": 20006,
"payload_type": 96,
"tr_offset": "default",
"video_format": "i720p50",
"pg_format": "YUV_422_10bit",
"video_url": "./720p.pcap"
}
]
}
]
}

Run on Windows

I am trying to test on Windows 10. I was able to do all the steps in the build_WIN.md successfully and all the steps in the run_WIN.md upto step 4. I'm also not sure if step 4 is correct as installing the latest drivers from Intel will update the driver used from step 3.4. In step 3.4, when setting up the netuio driver it will show up in the Windows UIO section in Device Manager and then when installing the drivers from Intel, those devices get changed to use the drivers from Intel and then go under the "Network Adapters" in the device manager. So I'm not sure what the point of step 3.4 would be if now it uses Intel's drivers... In any case, following the run guide, when I try to do step 5, it shows the following output:

C:\msys64\home\fdeluca\Media-Transport-Library>start /Node 0 /B .\build\app\RxTxApp --config_file config\test_tx_1port_1v.json

C:\msys64\home\fdeluca\Media-Transport-Library>st_app_parse_json, using json-c version: 0.17
MT: dev_eal_init(0), port_param: 0000:af:00.0
MT: dev_eal_init, wait eal_init_thread done
EAL: Detected CPU lcores: 12
EAL: Detected NUMA nodes: 1
MT: st version: 23.12.0 Wed Sep 6 16:42:49 2023 e413db3-dirty gcc-13.2.0, dpdk version: DPDK 23.07.0
MT: Error: mt_dev_get_socket, failed to locate 0000:af:00.0. Please run nicctl.sh
MT: Error: mtl_init, get socket fail -19
SDL_main, mtl_init fail

The scripts that are in the Media-Transport-Library\script folder don't work in msys as they make calls that don't exist...so running nicctl.sh doesn't work...
In step 5 it points you to look at the linux guide. However the linux guide, in step 3 has steps for running the nicctl.sh, but there is no mention that this needs to be run in Windows... It seems to me the Windows guide falls apart the moment it says to follow the "Run" section of the linux guide.

My Device Manager looks like this:
DeviceManager

Has anybody actually got this to work in Windows? Can anyone point me in the correct direction to get this working in Windows?
Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.