UDP packets visible in wireshark are not captured in Windows sockets (even with raw sockets)

139 Views Asked by At

I have a board (with FPGA) connecting to a windows 10 host through a 10G NIC. The board is set to static IP 10.254.210.10 & the host is 10.254.210.11. I can see the UDP packets in wireshark but it is not pass through to the sockets. UDP packet not able to capture through socket

a) I tried UDP server with socket bind to INADDR_ANY and port 2222. The host has another WI-FI NIC(192.168.x.x). We can capture the packet through sockets when it is entering through this interface. So, I guess it is not a firewall issue.
UDP packet able to capture through socket

b) I created a raw socket but still couldn't capture the packet observed in wireshark. Enabled promiscuous mode.

// enable promiscuous mode
    DWORD dwValue = RCVALL_ON;
    DWORD dwBytesReturned = 0;
    if (WSAIoctl(s, SIO_RCVALL, &dwValue, sizeof(dwValue), NULL, 0, &dwBytesReturned, NULL, NULL) == SOCKET_ERROR)
    {
        
        sprintf(err_msg, "Error to set in promiscous mode: WSAIoctl returned error code %d\n", WSAGetLastError());
        printf("Ioctl failed with error code : %d", WSAGetLastError());
        fwrite(err_msg, sizeof(err_msg), 1, fp);
        closesocket(s);
        WSACleanup();
        exit(EXIT_FAILURE);
    }
    puts("Ioctl done\n");

c) netstat doesn't show any errors in "UDP STatistics for IPv4"

d) Both IP checksum and UDP checksum is set to 0000 (i.e disabled).

0

There are 0 best solutions below