Committed by
Gerrit Code Review
Avoid processing IPv6 messages in ProxyArp if it is disabled (ONOS-1313)
Change-Id: I1eed21434d5d1e1cdeb175312b527c3b4c3942c5
Showing
1 changed file
with
11 additions
and
2 deletions
| ... | @@ -30,6 +30,7 @@ import org.onosproject.core.ApplicationId; | ... | @@ -30,6 +30,7 @@ import org.onosproject.core.ApplicationId; |
| 30 | import org.onosproject.core.CoreService; | 30 | import org.onosproject.core.CoreService; |
| 31 | import org.onosproject.net.flow.DefaultTrafficSelector; | 31 | import org.onosproject.net.flow.DefaultTrafficSelector; |
| 32 | import org.onosproject.net.flow.TrafficSelector; | 32 | import org.onosproject.net.flow.TrafficSelector; |
| 33 | +import org.onosproject.net.packet.InboundPacket; | ||
| 33 | import org.onosproject.net.packet.PacketContext; | 34 | import org.onosproject.net.packet.PacketContext; |
| 34 | import org.onosproject.net.packet.PacketPriority; | 35 | import org.onosproject.net.packet.PacketPriority; |
| 35 | import org.onosproject.net.packet.PacketProcessor; | 36 | import org.onosproject.net.packet.PacketProcessor; |
| ... | @@ -69,7 +70,7 @@ public class ProxyArp { | ... | @@ -69,7 +70,7 @@ public class ProxyArp { |
| 69 | 70 | ||
| 70 | @Property(name = "ipv6NeighborDiscovery", boolValue = false, | 71 | @Property(name = "ipv6NeighborDiscovery", boolValue = false, |
| 71 | label = "Enable IPv6 Neighbor Discovery; default is false") | 72 | label = "Enable IPv6 Neighbor Discovery; default is false") |
| 72 | - private boolean ipv6NeighborDiscovery = false; | 73 | + protected boolean ipv6NeighborDiscovery = false; |
| 73 | 74 | ||
| 74 | @Activate | 75 | @Activate |
| 75 | public void activate(ComponentContext context) { | 76 | public void activate(ComponentContext context) { |
| ... | @@ -171,7 +172,15 @@ public class ProxyArp { | ... | @@ -171,7 +172,15 @@ public class ProxyArp { |
| 171 | if (context.isHandled()) { | 172 | if (context.isHandled()) { |
| 172 | return; | 173 | return; |
| 173 | } | 174 | } |
| 174 | - | 175 | + // If IPv6 NDP is disabled, don't handle IPv6 frames. |
| 176 | + InboundPacket pkt = context.inPacket(); | ||
| 177 | + Ethernet ethPkt = pkt.parsed(); | ||
| 178 | + if (ethPkt == null) { | ||
| 179 | + return; | ||
| 180 | + } | ||
| 181 | + if (!ipv6NeighborDiscovery && (ethPkt.getEtherType() == Ethernet.TYPE_IPV6)) { | ||
| 182 | + return; | ||
| 183 | + } | ||
| 175 | //handle the arp packet. | 184 | //handle the arp packet. |
| 176 | proxyArpService.handlePacket(context); | 185 | proxyArpService.handlePacket(context); |
| 177 | } | 186 | } | ... | ... |
-
Please register or login to post a comment