GNS3 / gns3-server

GNS3 server
GNU General Public License v3.0
810 stars 263 forks source link

Qemu Adapters #1665

Closed asergeant01 closed 5 years ago

asergeant01 commented 5 years ago

When creating an Arista appliance with greater than 32 interfaces, the connections listed in GNS3 do not match those actually shown as connected within the vEOS.

This is due to #895 whereby the pci bridges are passed to qemu first before devices that are on the pcie.0 bus.

ie.

-device i82801b11-bridge,id=dmi_pci_bridge1 -device pci-bridge,id=pci-bridge1,bus=dmi_pci_bridge1,chassis_nr=0x1,addr=0x1,shpc=off

is inserted before

-device e1000,mac=0c:98:4e:52:c5:00,netdev=gns3-0 -netdev socket,id=gns3-0,udp=127.0.0.1:10807,localaddr=127.0.0.1:10806 -device e1000,mac=0c:98:4e:52:c5:01,netdev=gns3-1 -netdev socket,id=gns3-1,udp=127.0.0.1:10809,localaddr=127.0.0.1:10808 -device e1000,mac=0c:98:4e:52:c5:02,netdev=gns3-2 -netdev socket,id=gns3-2,udp=127.0.0.1:10811,localaddr=127.0.0.1:10810 -device e1000,mac=0c:98:4e:52:c5:03,netdev=gns3-3 -netdev socket,id=gns3-3,udp=127.0.0.1:10813,localaddr=127.0.0.1:10812

and

-device e1000,mac=0c:98:4e:52:c5:1b,bus=pci-bridge1,addr=0x00,netdev=gns3-27 -netdev socket,id=gns3-27,udp=127.0.0.1:10861,localaddr=127.0.0.1:10860 -device e1000,mac=0c:98:4e:52:c5:1c,bus=pci-bridge1,addr=0x01,netdev=gns3-28 -netdev socket,id=gns3-28,udp=127.0.0.1:10863,localaddr=127.0.0.1:10862 -device e1000,mac=0c:98:4e:52:c5:1d,bus=pci-bridge1,addr=0x02,netdev=gns3-29 -netdev socket,id=gns3-29,udp=127.0.0.1:10865,localaddr=127.0.0.1:10864

In order to fix this issue, devices on the default pcie.0 bus should be added first, followed by the bridge and then devices attached on that bridge

grossmj commented 5 years ago

Thanks for posting! With what version of GNS3 have you tested this?

asergeant01 commented 5 years ago

No problem. Version 2.1.21

grossmj commented 5 years ago

I have implemented https://github.com/GNS3/gns3-server/pull/1681 which seems to work well, I tested with vEOS with 13, 35 and 129 interfaces, I could still ping a VPCS node connected to Ethernet5 which was not the case previously with more than 32 interfaces

One question though, are all your interfaces in up/up even when no links are connected?