TransWikia.com

How can I receive Genicam packets from a device in a docker container?

Robotics Asked by thinwybk on October 3, 2021

I installed a command line tool which accepts genicam packets from a device as input into a docker image. If I use the option --network host in the run command for the container the packets are received. If I use -p 3956:3956/udp to expose the Genicam default port 3956 (e.g. stated here: RoboRealm – GenICam – Instructions) in the run command of the container I don’t get packets. What did I wrong? Could the port be different from the default? How could I get the changed port then?

2 Answers

Here is a plug and play solution in docker compose for it, however please check your container for vulnerabilities. If you do not use docker networks you can use network mode host instead.

version: '3.7'

services:
  your_container:
    image: your_image
    container_name: your_container
    #network_mode: host
    networks:
     - camera_vlan

networks:
  camera_vlan:
    driver: macvlan
    driver_opts:
      parent: enp2s0 # your adapter name goes here
    ipam:
      driver: default
      config:
        - subnet: "your.device.ip.goes/here"
```

Answered by Gornoka on October 3, 2021

Because Genicam will actually use another 2 random ports to establish the connection. You are supposed to be able to force those to a specific value but that's not well documented. The way I tried to solve it was by creating a macvlan network. https://docs.docker.com/network/macvlan/

If you are networking with unfamiliar protocols Wireshark is always a good place to start. It lets you see every single packet that passes in/out/between your computer.

Answered by Sir Demios on October 3, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP