Committed by
Gerrit Code Review
Don't PNAT for DHCP packets
And don't call Neutron before the config is ready Change-Id: I921731468c65b9df7646525d32edddc69e46c371
Showing
1 changed file
with
8 additions
and
1 deletions
... | @@ -27,6 +27,7 @@ import org.onlab.packet.Ethernet; | ... | @@ -27,6 +27,7 @@ import org.onlab.packet.Ethernet; |
27 | import org.onlab.packet.IPv4; | 27 | import org.onlab.packet.IPv4; |
28 | import org.onlab.packet.Ip4Address; | 28 | import org.onlab.packet.Ip4Address; |
29 | import org.onlab.packet.MacAddress; | 29 | import org.onlab.packet.MacAddress; |
30 | +import org.onlab.packet.UDP; | ||
30 | import org.onosproject.core.ApplicationId; | 31 | import org.onosproject.core.ApplicationId; |
31 | import org.onosproject.core.CoreService; | 32 | import org.onosproject.core.CoreService; |
32 | import org.onosproject.net.DeviceId; | 33 | import org.onosproject.net.DeviceId; |
... | @@ -112,7 +113,6 @@ public class OpenstackRoutingManager implements OpenstackRoutingService { | ... | @@ -112,7 +113,6 @@ public class OpenstackRoutingManager implements OpenstackRoutingService { |
112 | protected void activate() { | 113 | protected void activate() { |
113 | appId = coreService.registerApplication(APP_ID); | 114 | appId = coreService.registerApplication(APP_ID); |
114 | packetService.addProcessor(internalPacketProcessor, PacketProcessor.director(1)); | 115 | packetService.addProcessor(internalPacketProcessor, PacketProcessor.director(1)); |
115 | - reloadInitL3Rules(); | ||
116 | log.info("onos-openstackrouting started"); | 116 | log.info("onos-openstackrouting started"); |
117 | } | 117 | } |
118 | 118 | ||
... | @@ -210,6 +210,13 @@ public class OpenstackRoutingManager implements OpenstackRoutingService { | ... | @@ -210,6 +210,13 @@ public class OpenstackRoutingManager implements OpenstackRoutingService { |
210 | case IPv4.PROTOCOL_ICMP: | 210 | case IPv4.PROTOCOL_ICMP: |
211 | icmpEventExecutorService.execute(new OpenstackIcmpHandler(rulePopulator, context)); | 211 | icmpEventExecutorService.execute(new OpenstackIcmpHandler(rulePopulator, context)); |
212 | break; | 212 | break; |
213 | + case IPv4.PROTOCOL_UDP: | ||
214 | + // don't process DHCP | ||
215 | + UDP udpPacket = (UDP) iPacket.getPayload(); | ||
216 | + if (udpPacket.getDestinationPort() == UDP.DHCP_SERVER_PORT && | ||
217 | + udpPacket.getSourcePort() == UDP.DHCP_CLIENT_PORT) { | ||
218 | + break; | ||
219 | + } | ||
213 | default: | 220 | default: |
214 | int portNum = getPortNum(ethernet.getSourceMAC(), iPacket.getDestinationAddress()); | 221 | int portNum = getPortNum(ethernet.getSourceMAC(), iPacket.getDestinationAddress()); |
215 | Port port = getExternalPort(pkt.receivedFrom().deviceId(), EXTERNAL_INTERFACE_NAME); | 222 | Port port = getExternalPort(pkt.receivedFrom().deviceId(), EXTERNAL_INTERFACE_NAME); | ... | ... |
-
Please register or login to post a comment