code: def _add_linux_ethernet(self, port_info, bridge_name):
          
          interface = port_info["interface"]
          if gns3server.utils.interfaces.is_interface_bridge(interface):
  
              network_interfaces = [interface["name"] for interface in self._interfaces()]
              i = 0
              while True:
                  tap = "gns3tap{}-{}".format(i, port_info["port_number"])
                  if tap not in network_interfaces:
                      break
                  i += 1
  
              yield from self._ubridge_send('bridge add_nio_tap "{name}" "{interface}"'.format(name=bridge_name, interface=tap))
              yield from self._ubridge_send('brctl addif "{interface}" "{tap}"'.format(tap=tap, interface=interface))
          else:
              yield from self._ubridge_send('bridge add_nio_linux_raw {name} "{interface}"'.format(name=bridge_name, interface=interface))
docs: Use raw sockets on Linux.
  
          If interface is a bridge we connect a tap to it