Showing
3 changed files
with
47 additions
and
16 deletions
| 1 | +package org.onlab.onos.net.host.impl; | ||
| 2 | + | ||
| 3 | +import org.onlab.onos.net.ConnectPoint; | ||
| 4 | +import org.onlab.onos.net.host.PortAddresses; | ||
| 5 | +import org.onlab.packet.IpAddress; | ||
| 6 | +import org.onlab.packet.MacAddress; | ||
| 7 | + | ||
| 8 | +public class DefaultPortAddresses implements PortAddresses { | ||
| 9 | + | ||
| 10 | + private final ConnectPoint connectPoint; | ||
| 11 | + private final IpAddress ipAddress; | ||
| 12 | + private final MacAddress macAddress; | ||
| 13 | + | ||
| 14 | + public DefaultPortAddresses(ConnectPoint connectPoint, | ||
| 15 | + IpAddress ip, MacAddress mac) { | ||
| 16 | + this.connectPoint = connectPoint; | ||
| 17 | + this.ipAddress = ip; | ||
| 18 | + this.macAddress = mac; | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + @Override | ||
| 22 | + public ConnectPoint connectPoint() { | ||
| 23 | + return connectPoint; | ||
| 24 | + } | ||
| 25 | + | ||
| 26 | + @Override | ||
| 27 | + public IpAddress ip() { | ||
| 28 | + return ipAddress; | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + @Override | ||
| 32 | + public MacAddress mac() { | ||
| 33 | + return macAddress; | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | +} |
| ... | @@ -157,26 +157,22 @@ public class HostManager | ... | @@ -157,26 +157,22 @@ public class HostManager |
| 157 | @Override | 157 | @Override |
| 158 | public void bindAddressesToPort(IpAddress ip, MacAddress mac, | 158 | public void bindAddressesToPort(IpAddress ip, MacAddress mac, |
| 159 | ConnectPoint connectPoint) { | 159 | ConnectPoint connectPoint) { |
| 160 | - // TODO Auto-generated method stub | 160 | + store.updateAddressBindings(new DefaultPortAddresses(connectPoint, ip, mac)); |
| 161 | - | ||
| 162 | } | 161 | } |
| 163 | 162 | ||
| 164 | @Override | 163 | @Override |
| 165 | public void unbindAddressesFromPort(ConnectPoint connectPoint) { | 164 | public void unbindAddressesFromPort(ConnectPoint connectPoint) { |
| 166 | - // TODO Auto-generated method stub | 165 | + store.removeAddressBindings(connectPoint); |
| 167 | - | ||
| 168 | } | 166 | } |
| 169 | 167 | ||
| 170 | @Override | 168 | @Override |
| 171 | public Set<PortAddresses> getAddressBindings() { | 169 | public Set<PortAddresses> getAddressBindings() { |
| 172 | - // TODO Auto-generated method stub | 170 | + return store.getAddressBindings(); |
| 173 | - return null; | ||
| 174 | } | 171 | } |
| 175 | 172 | ||
| 176 | @Override | 173 | @Override |
| 177 | public PortAddresses getAddressBindingsForPort(ConnectPoint connectPoint) { | 174 | public PortAddresses getAddressBindingsForPort(ConnectPoint connectPoint) { |
| 178 | - // TODO Auto-generated method stub | 175 | + return store.getAddressBindingsForPort(connectPoint); |
| 179 | - return null; | ||
| 180 | } | 176 | } |
| 181 | 177 | ||
| 182 | // Personalized host provider service issued to the supplied provider. | 178 | // Personalized host provider service issued to the supplied provider. | ... | ... |
| ... | @@ -51,6 +51,9 @@ public class SimpleHostStore implements HostStore { | ... | @@ -51,6 +51,9 @@ public class SimpleHostStore implements HostStore { |
| 51 | // Hosts tracked by their location | 51 | // Hosts tracked by their location |
| 52 | private final Multimap<ConnectPoint, Host> locations = HashMultimap.create(); | 52 | private final Multimap<ConnectPoint, Host> locations = HashMultimap.create(); |
| 53 | 53 | ||
| 54 | + private final Map<ConnectPoint, PortAddresses> portAddresses = | ||
| 55 | + new ConcurrentHashMap<>(); | ||
| 56 | + | ||
| 54 | @Activate | 57 | @Activate |
| 55 | public void activate() { | 58 | public void activate() { |
| 56 | log.info("Started"); | 59 | log.info("Started"); |
| ... | @@ -195,26 +198,22 @@ public class SimpleHostStore implements HostStore { | ... | @@ -195,26 +198,22 @@ public class SimpleHostStore implements HostStore { |
| 195 | 198 | ||
| 196 | @Override | 199 | @Override |
| 197 | public void updateAddressBindings(PortAddresses addresses) { | 200 | public void updateAddressBindings(PortAddresses addresses) { |
| 198 | - // TODO Auto-generated method stub | 201 | + portAddresses.put(addresses.connectPoint(), addresses); |
| 199 | - | ||
| 200 | } | 202 | } |
| 201 | 203 | ||
| 202 | @Override | 204 | @Override |
| 203 | public void removeAddressBindings(ConnectPoint connectPoint) { | 205 | public void removeAddressBindings(ConnectPoint connectPoint) { |
| 204 | - // TODO Auto-generated method stub | 206 | + portAddresses.remove(connectPoint); |
| 205 | - | ||
| 206 | } | 207 | } |
| 207 | 208 | ||
| 208 | @Override | 209 | @Override |
| 209 | public Set<PortAddresses> getAddressBindings() { | 210 | public Set<PortAddresses> getAddressBindings() { |
| 210 | - // TODO Auto-generated method stub | 211 | + return new HashSet<>(portAddresses.values()); |
| 211 | - return null; | ||
| 212 | } | 212 | } |
| 213 | 213 | ||
| 214 | @Override | 214 | @Override |
| 215 | public PortAddresses getAddressBindingsForPort(ConnectPoint connectPoint) { | 215 | public PortAddresses getAddressBindingsForPort(ConnectPoint connectPoint) { |
| 216 | - // TODO Auto-generated method stub | 216 | + return portAddresses.get(connectPoint); |
| 217 | - return null; | ||
| 218 | } | 217 | } |
| 219 | 218 | ||
| 220 | } | 219 | } | ... | ... |
-
Please register or login to post a comment