blob: 2b203133169152bc377e543adc69d833b9a962b7 [file] [log] [blame]
Thomas Vachuska4f1a60c2014-10-28 13:39:07 -07001/*
2 * Copyright 2014 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Brian O'Connorabafb502014-12-02 22:26:20 -080016package org.onosproject.net.host;
tom89b63c52014-09-16 09:19:51 -070017
Brian O'Connorabafb502014-12-02 22:26:20 -080018import org.onosproject.net.ConnectPoint;
19import org.onosproject.net.HostId;
tom89b63c52014-09-16 09:19:51 -070020
21/**
22 * Service for administering the inventory of end-station hosts.
23 */
24public interface HostAdminService {
25
26 /**
27 * Removes the end-station host with the specified identifier.
28 *
29 * @param hostId host identifier
30 */
31 void removeHost(HostId hostId);
32
Jonathan Hartac60c082014-09-23 08:55:17 -070033 /**
Jonathan Hart09585c62014-09-23 16:58:04 -070034 * Binds IP and MAC addresses to the given connection point.
Thomas Vachuska4b420772014-10-30 16:46:17 -070035 * <p>
Jonathan Hart09585c62014-09-23 16:58:04 -070036 * The addresses are added to the set of addresses already bound to the
Jonathan Harta887ba82014-11-03 15:20:52 -080037 * connection point.
Jonathan Hartac60c082014-09-23 08:55:17 -070038 *
Jonathan Hart09585c62014-09-23 16:58:04 -070039 * @param addresses address object containing addresses to add and the port
40 * to add them to
Jonathan Hartac60c082014-09-23 08:55:17 -070041 */
Jonathan Hart09585c62014-09-23 16:58:04 -070042 void bindAddressesToPort(PortAddresses addresses);
43
44 /**
45 * Removes the addresses contained in the given PortAddresses object from
46 * the set of addresses bound to the port.
47 *
48 * @param portAddresses set of addresses to remove and port to remove them
49 * from
50 */
51 void unbindAddressesFromPort(PortAddresses portAddresses);
Jonathan Hartac60c082014-09-23 08:55:17 -070052
53 /**
54 * Removes all address information for the given connection point.
55 *
56 * @param connectPoint the connection point to remove address information
57 */
Jonathan Hart09585c62014-09-23 16:58:04 -070058 void clearAddresses(ConnectPoint connectPoint);
Jonathan Hartac60c082014-09-23 08:55:17 -070059
tom89b63c52014-09-16 09:19:51 -070060}