Committed by
Gerrit Code Review
cleaning mcast route data type in preperation for the backing store
moving package to API with BETA tag Change-Id: I62a611dcb67b6b4d3ee6f90ed2e963ea345b7d6e
Showing
6 changed files
with
74 additions
and
53 deletions
apps/mcast/pom.xml
deleted
100644 → 0
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | -<!-- | ||
| 3 | - ~ Copyright 2014 Open Networking Laboratory | ||
| 4 | - ~ | ||
| 5 | - ~ Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 6 | - ~ you may not use this file except in compliance with the License. | ||
| 7 | - ~ You may obtain a copy of the License at | ||
| 8 | - ~ | ||
| 9 | - ~ http://www.apache.org/licenses/LICENSE-2.0 | ||
| 10 | - ~ | ||
| 11 | - ~ Unless required by applicable law or agreed to in writing, software | ||
| 12 | - ~ distributed under the License is distributed on an "AS IS" BASIS, | ||
| 13 | - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 14 | - ~ See the License for the specific language governing permissions and | ||
| 15 | - ~ limitations under the License. | ||
| 16 | - --> | ||
| 17 | -<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
| 18 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 19 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | ||
| 20 | - <modelVersion>4.0.0</modelVersion> | ||
| 21 | - | ||
| 22 | - <parent> | ||
| 23 | - <groupId>org.onosproject</groupId> | ||
| 24 | - <artifactId>onos-apps</artifactId> | ||
| 25 | - <version>1.4.0-SNAPSHOT</version> | ||
| 26 | - <relativePath>../pom.xml</relativePath> | ||
| 27 | - </parent> | ||
| 28 | - | ||
| 29 | - <artifactId>onos-app-mcast</artifactId> | ||
| 30 | - <packaging>bundle</packaging> | ||
| 31 | - | ||
| 32 | - <description>Multicast RIB</description> | ||
| 33 | - | ||
| 34 | - <properties> | ||
| 35 | - <onos.app.name>org.onosproject.mcast</onos.app.name> | ||
| 36 | - </properties> | ||
| 37 | - | ||
| 38 | - <dependencies> | ||
| 39 | - <dependency> | ||
| 40 | - <groupId>org.osgi</groupId> | ||
| 41 | - <artifactId>org.osgi.compendium</artifactId> | ||
| 42 | - </dependency> | ||
| 43 | - </dependencies> | ||
| 44 | - | ||
| 45 | -</project> |
| ... | @@ -13,8 +13,9 @@ | ... | @@ -13,8 +13,9 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | -package org.onosproject.mcast; | 16 | +package org.onosproject.net.mcast; |
| 17 | 17 | ||
| 18 | +import com.google.common.annotations.Beta; | ||
| 18 | import org.onosproject.event.AbstractEvent; | 19 | import org.onosproject.event.AbstractEvent; |
| 19 | import org.onosproject.net.ConnectPoint; | 20 | import org.onosproject.net.ConnectPoint; |
| 20 | 21 | ||
| ... | @@ -24,6 +25,7 @@ import java.util.Optional; | ... | @@ -24,6 +25,7 @@ import java.util.Optional; |
| 24 | * An entity representing a multicast event. Event either add or remove | 25 | * An entity representing a multicast event. Event either add or remove |
| 25 | * sinks or sources. | 26 | * sinks or sources. |
| 26 | */ | 27 | */ |
| 28 | +@Beta | ||
| 27 | public class McastEvent extends AbstractEvent<McastEvent.Type, McastRoute> { | 29 | public class McastEvent extends AbstractEvent<McastEvent.Type, McastRoute> { |
| 28 | 30 | ||
| 29 | private final Optional<ConnectPoint> sink; | 31 | private final Optional<ConnectPoint> sink; | ... | ... |
| ... | @@ -13,12 +13,14 @@ | ... | @@ -13,12 +13,14 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | -package org.onosproject.mcast; | 16 | +package org.onosproject.net.mcast; |
| 17 | 17 | ||
| 18 | +import com.google.common.annotations.Beta; | ||
| 18 | import org.onosproject.event.EventListener; | 19 | import org.onosproject.event.EventListener; |
| 19 | 20 | ||
| 20 | /** | 21 | /** |
| 21 | * A listener interface for multicast events. | 22 | * A listener interface for multicast events. |
| 22 | */ | 23 | */ |
| 24 | +@Beta | ||
| 23 | public interface McastListener extends EventListener<McastEvent> { | 25 | public interface McastListener extends EventListener<McastEvent> { |
| 24 | } | 26 | } | ... | ... |
| ... | @@ -13,22 +13,46 @@ | ... | @@ -13,22 +13,46 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | -package org.onosproject.mcast; | 16 | +package org.onosproject.net.mcast; |
| 17 | 17 | ||
| 18 | +import com.google.common.annotations.Beta; | ||
| 19 | +import com.google.common.base.Objects; | ||
| 18 | import org.onlab.packet.IpPrefix; | 20 | import org.onlab.packet.IpPrefix; |
| 19 | 21 | ||
| 22 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
| 23 | + | ||
| 20 | /** | 24 | /** |
| 21 | * An entity representing a multicast route consisting of a source | 25 | * An entity representing a multicast route consisting of a source |
| 22 | * and a multicast group address. | 26 | * and a multicast group address. |
| 23 | */ | 27 | */ |
| 28 | +@Beta | ||
| 24 | public class McastRoute { | 29 | public class McastRoute { |
| 25 | 30 | ||
| 26 | - public final IpPrefix source; | 31 | + public enum Type { |
| 27 | - public final IpPrefix group; | 32 | + /** |
| 33 | + * Route originates from PIM. | ||
| 34 | + */ | ||
| 35 | + PIM, | ||
| 36 | + | ||
| 37 | + /** | ||
| 38 | + * Route originates from IGMP. | ||
| 39 | + */ | ||
| 40 | + IGMP, | ||
| 41 | + | ||
| 42 | + /** | ||
| 43 | + * Route originates from other config (ie. REST, CLI). | ||
| 44 | + */ | ||
| 45 | + STATIC | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + private final IpPrefix source; | ||
| 49 | + private final IpPrefix group; | ||
| 50 | + private final Type type; | ||
| 28 | 51 | ||
| 29 | - public McastRoute(IpPrefix source, IpPrefix group) { | 52 | + public McastRoute(IpPrefix source, IpPrefix group, Type type) { |
| 30 | this.source = source; | 53 | this.source = source; |
| 31 | this.group = group; | 54 | this.group = group; |
| 55 | + this.type = type; | ||
| 32 | } | 56 | } |
| 33 | 57 | ||
| 34 | /** | 58 | /** |
| ... | @@ -49,4 +73,41 @@ public class McastRoute { | ... | @@ -49,4 +73,41 @@ public class McastRoute { |
| 49 | return group; | 73 | return group; |
| 50 | } | 74 | } |
| 51 | 75 | ||
| 76 | + /** | ||
| 77 | + * Obtains how this route was created. | ||
| 78 | + * @return a type of route | ||
| 79 | + | ||
| 80 | + */ | ||
| 81 | + public Type type() { | ||
| 82 | + return type; | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + @Override | ||
| 86 | + public String toString() { | ||
| 87 | + return toStringHelper(this) | ||
| 88 | + .add("source", source) | ||
| 89 | + .add("group", group) | ||
| 90 | + .add("origin", type) | ||
| 91 | + .toString(); | ||
| 92 | + } | ||
| 93 | + | ||
| 94 | + @Override | ||
| 95 | + public boolean equals(Object o) { | ||
| 96 | + if (this == o) { | ||
| 97 | + return true; | ||
| 98 | + } | ||
| 99 | + if (o == null || getClass() != o.getClass()) { | ||
| 100 | + return false; | ||
| 101 | + } | ||
| 102 | + McastRoute that = (McastRoute) o; | ||
| 103 | + return Objects.equal(source, that.source) && | ||
| 104 | + Objects.equal(group, that.group) && | ||
| 105 | + Objects.equal(type, that.type); | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + @Override | ||
| 109 | + public int hashCode() { | ||
| 110 | + return Objects.hashCode(source, group, type); | ||
| 111 | + } | ||
| 112 | + | ||
| 52 | } | 113 | } | ... | ... |
| ... | @@ -13,8 +13,9 @@ | ... | @@ -13,8 +13,9 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | -package org.onosproject.mcast; | 16 | +package org.onosproject.net.mcast; |
| 17 | 17 | ||
| 18 | +import com.google.common.annotations.Beta; | ||
| 18 | import org.onosproject.net.ConnectPoint; | 19 | import org.onosproject.net.ConnectPoint; |
| 19 | 20 | ||
| 20 | import java.util.List; | 21 | import java.util.List; |
| ... | @@ -22,6 +23,7 @@ import java.util.List; | ... | @@ -22,6 +23,7 @@ import java.util.List; |
| 22 | /** | 23 | /** |
| 23 | * A service interface for maintaining multicast information. | 24 | * A service interface for maintaining multicast information. |
| 24 | */ | 25 | */ |
| 26 | +@Beta | ||
| 25 | public interface MulticastRouteTable { | 27 | public interface MulticastRouteTable { |
| 26 | 28 | ||
| 27 | /** | 29 | /** | ... | ... |
-
Please register or login to post a comment