Two fixes: 1) cpqd emulation of ofdpa pops off internal vlan before sending to controller
2) Arp handler does not need to send flowmod to switch as hostmanager listener is doing that Change-Id: I5460aa36bcb3cfce3bc1887e304a63b2221495b9
Showing
2 changed files
with
4 additions
and
5 deletions
| ... | @@ -76,7 +76,7 @@ public class ArpHandler { | ... | @@ -76,7 +76,7 @@ public class ArpHandler { |
| 76 | * hosts in the same subnet. | 76 | * hosts in the same subnet. |
| 77 | * For an ARP packet with broadcast destination MAC, | 77 | * For an ARP packet with broadcast destination MAC, |
| 78 | * some switches pipelines will send it to the controller due to table miss, | 78 | * some switches pipelines will send it to the controller due to table miss, |
| 79 | - * other swithches will flood the packets directly in the data plane without | 79 | + * other switches will flood the packets directly in the data plane without |
| 80 | * packet in. | 80 | * packet in. |
| 81 | * We can deal with both cases. | 81 | * We can deal with both cases. |
| 82 | * | 82 | * |
| ... | @@ -92,10 +92,6 @@ public class ArpHandler { | ... | @@ -92,10 +92,6 @@ public class ArpHandler { |
| 92 | DeviceId deviceId = connectPoint.deviceId(); | 92 | DeviceId deviceId = connectPoint.deviceId(); |
| 93 | byte[] senderMacAddressByte = arp.getSenderHardwareAddress(); | 93 | byte[] senderMacAddressByte = arp.getSenderHardwareAddress(); |
| 94 | Ip4Address hostIpAddress = Ip4Address.valueOf(arp.getSenderProtocolAddress()); | 94 | Ip4Address hostIpAddress = Ip4Address.valueOf(arp.getSenderProtocolAddress()); |
| 95 | - | ||
| 96 | - srManager.routingRulePopulator.populateIpRuleForHost(deviceId, hostIpAddress, MacAddress. | ||
| 97 | - valueOf(senderMacAddressByte), inPort); | ||
| 98 | - | ||
| 99 | if (arp.getOpCode() == ARP.OP_REQUEST) { | 95 | if (arp.getOpCode() == ARP.OP_REQUEST) { |
| 100 | handleArpRequest(deviceId, connectPoint, ethernet); | 96 | handleArpRequest(deviceId, connectPoint, ethernet); |
| 101 | } else { | 97 | } else { | ... | ... |
| ... | @@ -588,6 +588,9 @@ public class CpqdOFDPA2Pipeline extends OFDPA2Pipeline { | ... | @@ -588,6 +588,9 @@ public class CpqdOFDPA2Pipeline extends OFDPA2Pipeline { |
| 588 | if (ins instanceof OutputInstruction) { | 588 | if (ins instanceof OutputInstruction) { |
| 589 | OutputInstruction o = (OutputInstruction) ins; | 589 | OutputInstruction o = (OutputInstruction) ins; |
| 590 | if (o.port() == PortNumber.CONTROLLER) { | 590 | if (o.port() == PortNumber.CONTROLLER) { |
| 591 | + // emulating real ofdpa behavior by popping off internal | ||
| 592 | + // vlan before sending to controller | ||
| 593 | + ttBuilder.popVlan(); | ||
| 591 | ttBuilder.add(o); | 594 | ttBuilder.add(o); |
| 592 | } else { | 595 | } else { |
| 593 | log.warn("Only allowed treatments in versatile forwarding " | 596 | log.warn("Only allowed treatments in versatile forwarding " | ... | ... |
-
Please register or login to post a comment