test(core): WLAN measured with Java FILIUS — a wireless cable is a cable, an SSID connects nothing
WlanRun pings on the new network wlan-lan: over wireless cables, over a plain cable, and to and from a notebook on the switch's SSID without a cable. The engine matches Java without a change: it runs the links only. Swift's wirelessAssociations, which join a host to its SSID's switch at run time, are not taken. ScenarioNetwork sets wireless cables, wireless cards and SSIDs; a corpus test pings over the wireless cables of multicast_server.fls. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
// A core scenario's network (packages/core/test/scenarios/*.scenario.json:
|
||||
// nodes, links, devices, dhcpServers, dhcpClients) built in Java FILIUS the
|
||||
// nodes, links (wireless or not), devices, switches' and hosts' SSIDs,
|
||||
// dhcpServers, dhcpClients, …) built in Java FILIUS the
|
||||
// way the core reads it: a port's MAC is its `mac`, else the core's
|
||||
// stableGeneratedMacAddress. Started as the action mode starts it (every
|
||||
// system software's starten()); afterwards every frame each network card saw
|
||||
@@ -22,8 +23,10 @@ import filius.rahmenprogramm.nachrichten.Lauscher;
|
||||
import filius.software.dhcp.DHCPServer;
|
||||
import filius.software.dns.DNSServer;
|
||||
import filius.software.netzzugangsschicht.EthernetFrame;
|
||||
import filius.software.system.Betriebssystem;
|
||||
import filius.software.system.GatewayFirmware;
|
||||
import filius.software.system.InternetKnotenBetriebssystem;
|
||||
import filius.software.system.SwitchFirmware;
|
||||
import filius.software.system.VermittlungsrechnerBetriebssystem;
|
||||
import filius.software.transportschicht.Segment;
|
||||
import filius.software.transportschicht.TcpSegment;
|
||||
@@ -139,6 +142,17 @@ public class ScenarioNetwork {
|
||||
Map<String, Object> link = map(each);
|
||||
Kabel cable = new Kabel();
|
||||
cable.setAnschluesse(new Port[] { ports.get(link.get("sourcePort")), ports.get(link.get("targetPort")) });
|
||||
cable.setWireless(Boolean.TRUE.equals(link.get("wireless")));
|
||||
}
|
||||
// A switch's SSID, a host's wireless card and the SSID it joins: what the
|
||||
// editor reads to lay a wireless cable; the simulation does not ask.
|
||||
for (Map.Entry<String, Object> entry : map(scenario.getOrDefault("switches", new HashMap<>())).entrySet()) {
|
||||
((SwitchFirmware) nodes.get(entry.getKey()).getSystemSoftware()).setSSID((String) map(entry.getValue()).get("ssid"));
|
||||
}
|
||||
for (Map.Entry<String, Object> entry : map(scenario.getOrDefault("wireless", new HashMap<>())).entrySet()) {
|
||||
Betriebssystem os = (Betriebssystem) system(nodes.get(entry.getKey()));
|
||||
os.nicWireless(true);
|
||||
os.setSsid((String) map(entry.getValue()).get("ssid"));
|
||||
}
|
||||
for (Map.Entry<String, Object> entry : map(scenario.getOrDefault("dhcpServers", new HashMap<>())).entrySet()) {
|
||||
Map<String, Object> config = map(entry.getValue());
|
||||
|
||||
Reference in New Issue
Block a user