Получение пакетов UDP на fpga

Я пытаюсь отправить данные с моего ПК на FPGA с помощью кабеля Ethernet.

Я использовал этот код для получения пакетов, которые отправляются с моего ПК на FPGA (через кабель Ethernet). Я перехватываю полученные пакеты на FPGA с помощью ila (встроенный логический отладчик).

После программирования FPGA, когда я использовал ifconfig на своем компьютере с Linux, я вижу ниже: (я скрыл свой MAC-адрес)

enp7s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1490
        ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1427  bytes 199195 (199.1 KB)
        TX errors 1071  dropped 0 overruns 0  carrier 0  collisions 0

Как я узнал из этот аналогичный вопрос, My FPGA не имеют определенного IP-адреса и даже номера порта. он прослушивает все пакеты, отправленные по RXD (ethernet mii), в соответствии с его MAC-адресом.

Как я могу отправлять пакеты на FPGA, даже если у меня нет определенного IP и порта?

Я думаю, что я должен установить порт и IP для моего FPGA на моем ПК (нет необходимости менять оборудование), но я не знаю, как это сделать?


person Bashid    schedule 15.07.2020    source источник


Ответы (1)


вариантов немного.

  • если FPGA напрямую подключен к вашему интерфейсу, то он будет получать все, что вы отправляете, так что не беспокойтесь о конфигурации сети
  • если у вас есть переключатель между ними, вы можете отправить широковещательное сообщение, которое будет перенаправлено на все устройства в сети (при условии, что у вас нет сложной конфигурации в вашем коммутаторе, например vlan или аналогичной).

о трансляции: https://en.wikipedia.org/wiki/Broadcasting_(networking) это просто дест мак с ФФ

что касается фактической отправки, вы можете использовать python для создания и отправки вашего пакета. scapy — это очень простой пакет, который должен помочь вам с этим документом: https://scapy.readthedocs.io/en/latest/usage.html

посмотрите на этот конкретный пример:

sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="eth1")
person fgagnaire    schedule 16.07.2020