두 개의 Linux 가상 머신이 있습니다 VirtualBox 7.0
.
- 머신 1:
CentOS 6
Linux 커널 사용2.6.32-754
- 머신 2:
CentOS 8
Linux 커널 사용4.18.0-448
머신 1의 모든 네트워크 인터페이스지원하지 않음머신 2의 모든 네트워크 인터페이스에서 지원되는 TX 타임스탬프.
루프백 인터페이스를 고려해 봅시다.
산출sudo ethtool -T lo
기계 1:
Time stamping parameters for lo:
Capabilities:
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
PTP Hardware Clock: none
Hardware Transmit Timestamp Modes: none
Hardware Receive Filter Modes: none
기계 2:
Time stamping parameters for lo:
Capabilities:
software-transmit
software-receive
software-system-clock
PTP Hardware Clock: none
Hardware Transmit Timestamp Modes: none
Hardware Receive Filter Modes: none
머신 1이 TX 타임스탬프에 대한 지원이 부족한 이유는 명확하지 않습니다. 이 기능은 이 커널에서 사용할 수 있어야 하기 때문입니다.문서
여기서 루프백 인터페이스는 VirtualBox 구현 세부 사항에 의존하지 않을 것으로 예상하기 때문에 의도적으로 확인하고 있습니다.
CentOS6(사실 모든 OS에서)에 대한 TX 타임스탬프를 활성화하기 위해 시스템에서 명시적으로 구성해야 하는 항목이 있는지 아는 사람이 있습니까?
답변1
나는 이것이 드라이버가 작성되는 방식과 관련이 있다고 생각합니다. 예를 들어, 커널 소스 코드에는 v4.18
다음과 같은 코드가 있는 루프백 인터페이스용 드라이버가 포함되어 있습니다.
static int loopback_get_ts_info(struct net_device *netdev,
struct ethtool_ts_info *ts_info)
{
ts_info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
SOF_TIMESTAMPING_RX_SOFTWARE |
SOF_TIMESTAMPING_SOFTWARE;
ts_info->phc_index = -1;
return 0;
};
따라서 이는 이 버전의 루프백 인터페이스 드라이버가 TX 타임스탬프를 지원한다는 의미입니다.
그러나 커널 버전을 예를 들어 로 전환하면 v3.10
분명히 루프백 드라이버는 TX 타임스탬프( SOF_TIMESTAMPING_TX_SOFTWARE
)를 지원하지 않습니다.