Committed by
Gerrit Code Review
[ONOS-4718] Add skeleton code for de-serializing LISP ctrl messages
Change-Id: I52f7905538e5832e5282812df869b8158ce23334
Showing
9 changed files
with
184 additions
and
0 deletions
| 1 | +/* | ||
| 2 | + * Copyright 2016-present 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 | + */ | ||
| 16 | +package org.onosproject.lisp.msg.exceptions; | ||
| 17 | + | ||
| 18 | +/** | ||
| 19 | + * LISP control message parse error. | ||
| 20 | + */ | ||
| 21 | +public class LispParseError extends Exception { | ||
| 22 | + | ||
| 23 | + /** | ||
| 24 | + * Constructor for LispParseError. | ||
| 25 | + */ | ||
| 26 | + public LispParseError() { | ||
| 27 | + super(); | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + /** | ||
| 31 | + * Constructor for LispParseError with message and cause parameters. | ||
| 32 | + * | ||
| 33 | + * @param message error message | ||
| 34 | + * @param cause throwable cause | ||
| 35 | + */ | ||
| 36 | + public LispParseError(final String message, final Throwable cause) { | ||
| 37 | + super(message, cause); | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + /** | ||
| 41 | + * Constructor for LispParseError with message parameter. | ||
| 42 | + * | ||
| 43 | + * @param message error message | ||
| 44 | + */ | ||
| 45 | + public LispParseError(final String message) { | ||
| 46 | + super(message); | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + /** | ||
| 50 | + * Constructor for LispParseError with cause parameter. | ||
| 51 | + * | ||
| 52 | + * @param cause throwable cause | ||
| 53 | + */ | ||
| 54 | + public LispParseError(final Throwable cause) { | ||
| 55 | + super(cause); | ||
| 56 | + } | ||
| 57 | +} |
| 1 | +/* | ||
| 2 | + * Copyright 2016-present 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 | + */ | ||
| 16 | +/** | ||
| 17 | + * A package subsumes various LISP control message exceptions. | ||
| 18 | + */ | ||
| 19 | +package org.onosproject.lisp.msg.exceptions; | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -20,6 +20,7 @@ import com.google.common.collect.ImmutableList; | ... | @@ -20,6 +20,7 @@ import com.google.common.collect.ImmutableList; |
| 20 | import com.google.common.collect.Lists; | 20 | import com.google.common.collect.Lists; |
| 21 | import io.netty.buffer.ByteBuf; | 21 | import io.netty.buffer.ByteBuf; |
| 22 | import org.onlab.util.ImmutableByteSequence; | 22 | import org.onlab.util.ImmutableByteSequence; |
| 23 | +import org.onosproject.lisp.msg.exceptions.LispParseError; | ||
| 23 | 24 | ||
| 24 | import java.util.List; | 25 | import java.util.List; |
| 25 | 26 | ||
| ... | @@ -173,4 +174,15 @@ public final class DefaultLispMapNotify implements LispMapNotify { | ... | @@ -173,4 +174,15 @@ public final class DefaultLispMapNotify implements LispMapNotify { |
| 173 | recordCount, mapRecords); | 174 | recordCount, mapRecords); |
| 174 | } | 175 | } |
| 175 | } | 176 | } |
| 177 | + | ||
| 178 | + /** | ||
| 179 | + * A private LISP message reader for MapNotify message. | ||
| 180 | + */ | ||
| 181 | + private static class NotifyReader implements LispMessageReader<LispMapNotify> { | ||
| 182 | + | ||
| 183 | + @Override | ||
| 184 | + public LispMapNotify readFrom(ByteBuf byteBuf) throws LispParseError { | ||
| 185 | + return null; | ||
| 186 | + } | ||
| 187 | + } | ||
| 176 | } | 188 | } | ... | ... |
| ... | @@ -16,6 +16,8 @@ | ... | @@ -16,6 +16,8 @@ |
| 16 | package org.onosproject.lisp.msg.protocols; | 16 | package org.onosproject.lisp.msg.protocols; |
| 17 | 17 | ||
| 18 | import com.google.common.base.Objects; | 18 | import com.google.common.base.Objects; |
| 19 | +import io.netty.buffer.ByteBuf; | ||
| 20 | +import org.onosproject.lisp.msg.exceptions.LispParseError; | ||
| 19 | import org.onosproject.lisp.msg.types.LispAfiAddress; | 21 | import org.onosproject.lisp.msg.types.LispAfiAddress; |
| 20 | 22 | ||
| 21 | import static com.google.common.base.MoreObjects.toStringHelper; | 23 | import static com.google.common.base.MoreObjects.toStringHelper; |
| ... | @@ -185,4 +187,15 @@ public final class DefaultLispMapRecord implements LispMapRecord { | ... | @@ -185,4 +187,15 @@ public final class DefaultLispMapRecord implements LispMapRecord { |
| 185 | action, authoritative, mapVersionNumber, eidPrefixAfi); | 187 | action, authoritative, mapVersionNumber, eidPrefixAfi); |
| 186 | } | 188 | } |
| 187 | } | 189 | } |
| 190 | + | ||
| 191 | + /** | ||
| 192 | + * A private LISP message reader for MapRecord portion. | ||
| 193 | + */ | ||
| 194 | + private static class RecordReader implements LispMessageReader<LispMapRecord> { | ||
| 195 | + | ||
| 196 | + @Override | ||
| 197 | + public LispMapRecord readFrom(ByteBuf byteBuf) throws LispParseError { | ||
| 198 | + return null; | ||
| 199 | + } | ||
| 200 | + } | ||
| 188 | } | 201 | } | ... | ... |
| ... | @@ -20,6 +20,7 @@ import com.google.common.collect.ImmutableList; | ... | @@ -20,6 +20,7 @@ import com.google.common.collect.ImmutableList; |
| 20 | import com.google.common.collect.Lists; | 20 | import com.google.common.collect.Lists; |
| 21 | import io.netty.buffer.ByteBuf; | 21 | import io.netty.buffer.ByteBuf; |
| 22 | import org.onlab.util.ImmutableByteSequence; | 22 | import org.onlab.util.ImmutableByteSequence; |
| 23 | +import org.onosproject.lisp.msg.exceptions.LispParseError; | ||
| 23 | 24 | ||
| 24 | import java.util.List; | 25 | import java.util.List; |
| 25 | 26 | ||
| ... | @@ -211,4 +212,15 @@ public final class DefaultLispMapRegister implements LispMapRegister { | ... | @@ -211,4 +212,15 @@ public final class DefaultLispMapRegister implements LispMapRegister { |
| 211 | recordCount, mapRecords, proxyMapReply, wantMapNotify); | 212 | recordCount, mapRecords, proxyMapReply, wantMapNotify); |
| 212 | } | 213 | } |
| 213 | } | 214 | } |
| 215 | + | ||
| 216 | + /** | ||
| 217 | + * A private LISP message reader for MapRegister message. | ||
| 218 | + */ | ||
| 219 | + private static class RegisterReader implements LispMessageReader<LispMapRegister> { | ||
| 220 | + | ||
| 221 | + @Override | ||
| 222 | + public LispMapRegister readFrom(ByteBuf byteBuf) throws LispParseError { | ||
| 223 | + return null; | ||
| 224 | + } | ||
| 225 | + } | ||
| 214 | } | 226 | } | ... | ... |
| ... | @@ -17,6 +17,7 @@ package org.onosproject.lisp.msg.protocols; | ... | @@ -17,6 +17,7 @@ package org.onosproject.lisp.msg.protocols; |
| 17 | 17 | ||
| 18 | import com.google.common.base.Objects; | 18 | import com.google.common.base.Objects; |
| 19 | import io.netty.buffer.ByteBuf; | 19 | import io.netty.buffer.ByteBuf; |
| 20 | +import org.onosproject.lisp.msg.exceptions.LispParseError; | ||
| 20 | 21 | ||
| 21 | import static com.google.common.base.MoreObjects.toStringHelper; | 22 | import static com.google.common.base.MoreObjects.toStringHelper; |
| 22 | 23 | ||
| ... | @@ -169,4 +170,15 @@ public final class DefaultLispMapReply implements LispMapReply { | ... | @@ -169,4 +170,15 @@ public final class DefaultLispMapReply implements LispMapReply { |
| 169 | return new DefaultLispMapReply(nonce, recordCount, probe, etr, security); | 170 | return new DefaultLispMapReply(nonce, recordCount, probe, etr, security); |
| 170 | } | 171 | } |
| 171 | } | 172 | } |
| 173 | + | ||
| 174 | + /** | ||
| 175 | + * A private LISP message reader for MapReply message. | ||
| 176 | + */ | ||
| 177 | + private static class ReplyReader implements LispMessageReader<LispMapReply> { | ||
| 178 | + | ||
| 179 | + @Override | ||
| 180 | + public LispMapReply readFrom(ByteBuf byteBuf) throws LispParseError { | ||
| 181 | + return null; | ||
| 182 | + } | ||
| 183 | + } | ||
| 172 | } | 184 | } | ... | ... |
| ... | @@ -19,6 +19,7 @@ import com.google.common.base.Objects; | ... | @@ -19,6 +19,7 @@ import com.google.common.base.Objects; |
| 19 | import com.google.common.collect.ImmutableList; | 19 | import com.google.common.collect.ImmutableList; |
| 20 | import com.google.common.collect.Lists; | 20 | import com.google.common.collect.Lists; |
| 21 | import io.netty.buffer.ByteBuf; | 21 | import io.netty.buffer.ByteBuf; |
| 22 | +import org.onosproject.lisp.msg.exceptions.LispParseError; | ||
| 22 | import org.onosproject.lisp.msg.types.LispAfiAddress; | 23 | import org.onosproject.lisp.msg.types.LispAfiAddress; |
| 23 | 24 | ||
| 24 | import java.util.List; | 25 | import java.util.List; |
| ... | @@ -281,4 +282,15 @@ public final class DefaultLispMapRequest implements LispMapRequest { | ... | @@ -281,4 +282,15 @@ public final class DefaultLispMapRequest implements LispMapRequest { |
| 281 | eidRecords, authoritative, mapDataPresent, probe, smr, pitr, smrInvoked); | 282 | eidRecords, authoritative, mapDataPresent, probe, smr, pitr, smrInvoked); |
| 282 | } | 283 | } |
| 283 | } | 284 | } |
| 285 | + | ||
| 286 | + /** | ||
| 287 | + * A private LISP message reader for MapRequest message. | ||
| 288 | + */ | ||
| 289 | + private static class RequestReader implements LispMessageReader<LispMapRequest> { | ||
| 290 | + | ||
| 291 | + @Override | ||
| 292 | + public LispMapRequest readFrom(ByteBuf byteBuf) throws LispParseError { | ||
| 293 | + return null; | ||
| 294 | + } | ||
| 295 | + } | ||
| 284 | } | 296 | } | ... | ... |
| ... | @@ -15,6 +15,8 @@ | ... | @@ -15,6 +15,8 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.lisp.msg.protocols; | 16 | package org.onosproject.lisp.msg.protocols; |
| 17 | 17 | ||
| 18 | +import io.netty.buffer.ByteBuf; | ||
| 19 | +import org.onosproject.lisp.msg.exceptions.LispParseError; | ||
| 18 | import org.onosproject.lisp.msg.types.LispAfiAddress; | 20 | import org.onosproject.lisp.msg.types.LispAfiAddress; |
| 19 | 21 | ||
| 20 | /** | 22 | /** |
| ... | @@ -53,4 +55,15 @@ public final class LispEidRecord { | ... | @@ -53,4 +55,15 @@ public final class LispEidRecord { |
| 53 | public LispAfiAddress getPrefix() { | 55 | public LispAfiAddress getPrefix() { |
| 54 | return prefix; | 56 | return prefix; |
| 55 | } | 57 | } |
| 58 | + | ||
| 59 | + /** | ||
| 60 | + * A private LISP message reader for EidRecord portion. | ||
| 61 | + */ | ||
| 62 | + private static class EidRecordReader implements LispMessageReader<LispEidRecord> { | ||
| 63 | + | ||
| 64 | + @Override | ||
| 65 | + public LispEidRecord readFrom(ByteBuf byteBuf) throws LispParseError { | ||
| 66 | + return null; | ||
| 67 | + } | ||
| 68 | + } | ||
| 56 | } | 69 | } | ... | ... |
protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispMessageReader.java
0 → 100644
| 1 | +/* | ||
| 2 | + * Copyright 2016-present 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 | + */ | ||
| 16 | +package org.onosproject.lisp.msg.protocols; | ||
| 17 | + | ||
| 18 | +import io.netty.buffer.ByteBuf; | ||
| 19 | +import org.onosproject.lisp.msg.exceptions.LispParseError; | ||
| 20 | + | ||
| 21 | +/** | ||
| 22 | + * An interface for de-serializing LISP control message. | ||
| 23 | + */ | ||
| 24 | +public interface LispMessageReader<T> { | ||
| 25 | + | ||
| 26 | + /** | ||
| 27 | + * Reads from byte buffer and de-serialize the LISP control message. | ||
| 28 | + * | ||
| 29 | + * @param byteBuf byte buffer | ||
| 30 | + * @return LISP message instance | ||
| 31 | + * @throws LispParseError LISP control message parse error | ||
| 32 | + */ | ||
| 33 | + T readFrom(ByteBuf byteBuf) throws LispParseError; | ||
| 34 | +} |
-
Please register or login to post a comment