Showing
2 changed files
with
9 additions
and
6 deletions
| ... | @@ -167,6 +167,7 @@ public class ProxyArpManager implements ProxyArpService { | ... | @@ -167,6 +167,7 @@ public class ProxyArpManager implements ProxyArpService { |
| 167 | return; | 167 | return; |
| 168 | } | 168 | } |
| 169 | 169 | ||
| 170 | + // TODO find the correct IP address | ||
| 170 | Ethernet arpReply = buildArpReply(dst.ipAddresses().iterator().next(), | 171 | Ethernet arpReply = buildArpReply(dst.ipAddresses().iterator().next(), |
| 171 | dst.mac(), eth); | 172 | dst.mac(), eth); |
| 172 | // TODO: check send status with host service. | 173 | // TODO: check send status with host service. | ... | ... |
providers/openflow/host/src/main/java/org/onlab/onos/provider/of/host/impl/OpenFlowHostProvider.java
| 1 | package org.onlab.onos.provider.of.host.impl; | 1 | package org.onlab.onos.provider.of.host.impl; |
| 2 | 2 | ||
| 3 | +import static org.onlab.onos.net.DeviceId.deviceId; | ||
| 4 | +import static org.onlab.onos.net.PortNumber.portNumber; | ||
| 5 | +import static org.slf4j.LoggerFactory.getLogger; | ||
| 6 | + | ||
| 3 | import org.apache.felix.scr.annotations.Activate; | 7 | import org.apache.felix.scr.annotations.Activate; |
| 4 | import org.apache.felix.scr.annotations.Component; | 8 | import org.apache.felix.scr.annotations.Component; |
| 5 | import org.apache.felix.scr.annotations.Deactivate; | 9 | import org.apache.felix.scr.annotations.Deactivate; |
| ... | @@ -29,10 +33,6 @@ import org.onlab.packet.IpPrefix; | ... | @@ -29,10 +33,6 @@ import org.onlab.packet.IpPrefix; |
| 29 | import org.onlab.packet.VlanId; | 33 | import org.onlab.packet.VlanId; |
| 30 | import org.slf4j.Logger; | 34 | import org.slf4j.Logger; |
| 31 | 35 | ||
| 32 | -import static org.onlab.onos.net.DeviceId.deviceId; | ||
| 33 | -import static org.onlab.onos.net.PortNumber.portNumber; | ||
| 34 | -import static org.slf4j.LoggerFactory.getLogger; | ||
| 35 | - | ||
| 36 | /** | 36 | /** |
| 37 | * Provider which uses an OpenFlow controller to detect network | 37 | * Provider which uses an OpenFlow controller to detect network |
| 38 | * end-station hosts. | 38 | * end-station hosts. |
| ... | @@ -110,14 +110,16 @@ public class OpenFlowHostProvider extends AbstractProvider implements HostProvid | ... | @@ -110,14 +110,16 @@ public class OpenFlowHostProvider extends AbstractProvider implements HostProvid |
| 110 | // Potentially a new or moved host | 110 | // Potentially a new or moved host |
| 111 | if (eth.getEtherType() == Ethernet.TYPE_ARP) { | 111 | if (eth.getEtherType() == Ethernet.TYPE_ARP) { |
| 112 | ARP arp = (ARP) eth.getPayload(); | 112 | ARP arp = (ARP) eth.getPayload(); |
| 113 | - IpPrefix ip = IpPrefix.valueOf(arp.getSenderProtocolAddress()); | 113 | + IpPrefix ip = IpPrefix.valueOf(arp.getSenderProtocolAddress(), |
| 114 | + IpPrefix.MAX_INET_MASK); | ||
| 114 | HostDescription hdescr = | 115 | HostDescription hdescr = |
| 115 | new DefaultHostDescription(eth.getSourceMAC(), vlan, hloc, ip); | 116 | new DefaultHostDescription(eth.getSourceMAC(), vlan, hloc, ip); |
| 116 | providerService.hostDetected(hid, hdescr); | 117 | providerService.hostDetected(hid, hdescr); |
| 117 | 118 | ||
| 118 | } else if (ipLearn && eth.getEtherType() == Ethernet.TYPE_IPV4) { | 119 | } else if (ipLearn && eth.getEtherType() == Ethernet.TYPE_IPV4) { |
| 119 | IPv4 pip = (IPv4) eth.getPayload(); | 120 | IPv4 pip = (IPv4) eth.getPayload(); |
| 120 | - IpPrefix ip = IpPrefix.valueOf(pip.getSourceAddress()); | 121 | + IpPrefix ip = IpPrefix.valueOf(pip.getSourceAddress(), |
| 122 | + IpPrefix.MAX_INET_MASK); | ||
| 121 | HostDescription hdescr = | 123 | HostDescription hdescr = |
| 122 | new DefaultHostDescription(eth.getSourceMAC(), vlan, hloc, ip); | 124 | new DefaultHostDescription(eth.getSourceMAC(), vlan, hloc, ip); |
| 123 | providerService.hostDetected(hid, hdescr); | 125 | providerService.hostDetected(hid, hdescr); | ... | ... |
-
Please register or login to post a comment