Доступ к данным NIC или метки времени ядра из Java

Я использую карты Solarflare с sfptpd и я использую аппаратные метки времени в моем C-коде. Он не сильно отличается от примера Solarflare, который дает следующий результат:

$ export EF_RX_TIMESTAMPING=3
$ onload ./rx_timestamping --proto udp --port 6666
oo:rx_timestamping[32356]: Using OpenOnload 201509-u1 Copyright 2006-2016 Solarflare Communications, 2002-2005 Level 5 Networks [1]
Socket created, listening on port 6666
Socket accepted
Selecting hardware timestamping mode.
Packet 1 - 3 bytes  timestamps 1468588400.706881929 1468588400.706878923 1468588400.706878923 
Packet 2 - 3 bytes  timestamps 1468588403.815893129 1468588403.815890313 1468588403.815890313

Идея состоит в том, чтобы проверить вспомогательные данные, связанные с msghdr структурировать и извлечь timespec от SO_TIMESTAMPNS (ну, было бы почти так же, если бы я хотел полагаться на временные метки ядра программного обеспечения - без Solarflare, onload и т. д.).

Все идет нормально. Я хотел бы знать, есть ли какой-либо способ доступа к этим временным меткам с помощью стандартных API Java? Если нет, то каков будет самый простой способ продолжить? Я не против взломать код JNI. В худшем случае я мог бы справиться с сетью в нативном коде, обеспечивающем Java полученными данными вдоль метаданных (но, если возможно, я бы хотел избежать этого, поскольку я смотрю на доступ к меткам времени из существующего приложения).

0 ответов

Другие вопросы по тегам