Update of /cvsroot/javanetsim/javaNetSim/core
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv10174/core
Modified Files:
MultilayerSwitch.java NetworkInterfacePort.java
Log Message:
Fixed multilayer swtches bug.
Index: NetworkInterfacePort.java
===================================================================
RCS file: /cvsroot/javanetsim/javaNetSim/core/NetworkInterfacePort.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** NetworkInterfacePort.java 22 Oct 2008 08:54:15 -0000 1.11
--- NetworkInterfacePort.java 22 Oct 2008 21:22:55 -0000 1.12
***************
*** 161,168 ****
boolean drop = false;
! if(mode == MODE_ACCESS && tempPacket.vlan_id == 1)
tempPacket.vlan_id = vlan;
! if(mode == MODE_ACCESS && tempPacket.vlan_id != vlan)
drop = true;
--- 161,168 ----
boolean drop = false;
! if(mode == MODE_ACCESS && tempPacket.vlan_id == 1 && parentNode instanceof NetworkLayerDevice)
tempPacket.vlan_id = vlan;
! if(mode == MODE_ACCESS && tempPacket.vlan_id != vlan && parentNode instanceof NetworkLayerDevice)
drop = true;
***************
*** 208,211 ****
--- 208,213 ----
if(temp!=null && !drop){
+
+ tempPacket.vlan_id = 1;
temp.transportPacket(tempPacket,getSourceName());
Index: MultilayerSwitch.java
===================================================================
RCS file: /cvsroot/javanetsim/javaNetSim/core/MultilayerSwitch.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** MultilayerSwitch.java 22 Oct 2008 20:26:03 -0000 1.6
--- MultilayerSwitch.java 22 Oct 2008 21:22:55 -0000 1.7
***************
*** 175,183 ****
Hashtable<String, Long> inInt = IntCaches.get(inInterfaceName);
inInt.put(tempPacket.getSourceMACAddress(), Long.valueOf(System.currentTimeMillis()));
! Ethernet_packet copyPacket = new Ethernet_packet(tempPacket
! .getData(), tempPacket.getDestinationMACAddress(),
! tempPacket.getSourceMACAddress());
! // tag it
! copyPacket.vlan_id = tempPacket.vlan_id;
it = NetworkInterfacetable.elements();
--- 175,179 ----
Hashtable<String, Long> inInt = IntCaches.get(inInterfaceName);
inInt.put(tempPacket.getSourceMACAddress(), Long.valueOf(System.currentTimeMillis()));
!
it = NetworkInterfacetable.elements();
***************
*** 190,196 ****
intFound = true;
try {
! if(tempInterface.mode == NetworkInterfacePort.MODE_TRUNK
! || tempInterface.vlan == copyPacket.vlan_id)
tempInterface.sendPacket(copyPacket);
} catch (NullPointerException e) {
System.out.println("MultilayerSwitch.java: " + e.toString());
--- 186,199 ----
intFound = true;
try {
! if((tempInterface.mode == NetworkInterfacePort.MODE_TRUNK
! || tempInterface.vlan == tempPacket.vlan_id) && tempInterface.getConnectedLink()!=null){
! Ethernet_packet copyPacket = new Ethernet_packet(tempPacket
! .getData(), tempPacket.getDestinationMACAddress(),
! tempPacket.getSourceMACAddress());
! // tag it
! copyPacket.vlan_id = tempPacket.vlan_id;
!
tempInterface.sendPacket(copyPacket);
+ }
} catch (NullPointerException e) {
System.out.println("MultilayerSwitch.java: " + e.toString());
***************
*** 210,216 ****
try {
! if(tempInterface.mode == NetworkInterfacePort.MODE_TRUNK
! || tempInterface.vlan == copyPacket.vlan_id)
tempInterface.sendPacket(copyPacket);
} catch (NullPointerException e) {
System.out.println("Switch.java: " + e.toString());
--- 213,226 ----
try {
! if((tempInterface.mode == NetworkInterfacePort.MODE_TRUNK
! || tempInterface.vlan == tempPacket.vlan_id) && tempInterface.getConnectedLink()!=null){
! Ethernet_packet copyPacket = new Ethernet_packet(tempPacket
! .getData(), tempPacket.getDestinationMACAddress(),
! tempPacket.getSourceMACAddress());
! // tag it
! copyPacket.vlan_id = tempPacket.vlan_id;
!
tempInterface.sendPacket(copyPacket);
+ }
} catch (NullPointerException e) {
System.out.println("Switch.java: " + e.toString());
|