1 package org.openkilda.simulator.classes;
9 import org.projectfloodlight.openflow.types.DatapathId;
11 import java.util.ArrayList;
12 import java.util.HashMap;
13 import java.util.List;
17 private DatapathId dpid;
18 private List<IPortImpl> ports =
new ArrayList<>();
19 private Map<Long, IFlow> flows =
new HashMap<>();
20 private int controlPlaneLatency = 0;
22 private int maxPorts = 0;
34 maxPorts = numOfPorts;
36 while (
count < numOfPorts) {
81 return controlPlaneLatency;
86 this.controlPlaneLatency = controlPlaneLatency;
96 return dpid.toString();
106 this.dpid = DatapathId.of(dpid.
toString());
117 return ports.get(portNum);
118 }
catch (IndexOutOfBoundsException e) {
125 if (ports.size() < maxPorts) {
128 throw new SimulatorException(String.format(
"Switch already has reached maxPorts of %d" 131 return port.getNumber();
141 this.maxPorts = maxPorts;
152 return flows.get(cookie);
153 }
catch (IndexOutOfBoundsException e) {
160 if (flows.containsKey(flow.getCookie())) {
161 throw new SimulatorException(String.format(
"Flow %s already exists.", flow.toString()));
163 flows.put(flow.getCookie(), flow);
174 flows.remove(cookie);
Map< Long, IFlow > getFlows()
ISwitchImpl(SwitchId dpid, int numOfPorts, PortStateType portState)
void setDpid(DatapathId dpid)
List< IPortImpl > getPorts()
IPortImpl getPort(int portNum)
void setDpid(SwitchId dpid)
void modState(SwitchState state)
void delFlow(long cookie)
IFlow getFlow(long cookie)
ISwitchImpl(SwitchId dpid)
void setControlPlaneLatency(int controlPlaneLatency)
List< PortStatsEntry > getPortStats()
PortStatsEntry getPortStats(int portNum)
int getControlPlaneLatency()
void setMaxPorts(int maxPorts)
int addPort(IPortImpl port)