Jian Li
Committed by Gerrit Code Review

[ONOS-4718] Initial commit for LISP protocol message package

Change-Id: Ic4237723692327ee2d644f563413bdd7148d694a
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 +
20 +/**
21 + * LISP message interface.
22 + */
23 +public interface LispMessage {
24 +
25 + /**
26 + * Obtains LISP message type.
27 + *
28 + * @return LISP message type
29 + */
30 + LispType getType();
31 +
32 + /**
33 + * Writes LISP message object into communication channel.
34 + *
35 + * @param byteBuf byte buffer
36 + */
37 + void writeTo(ByteBuf byteBuf);
38 +
39 + /**
40 + * Generates LISP message builder.
41 + *
42 + * @return builder object
43 + */
44 + Builder createBuilder();
45 +
46 + /**
47 + * LISP message builder interface.
48 + */
49 + interface Builder {
50 +
51 + /**
52 + * Builds LISP message.
53 + *
54 + * @return LISP message
55 + */
56 + LispMessage build();
57 +
58 + /**
59 + * Obtains LISP message type.
60 + *
61 + * @return LISP message type
62 + */
63 + LispType getType();
64 + }
65 +}
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 +/**
19 + * LISP message type enumeration.
20 + *
21 + * An enumeration of LISP Message type defined in RFC6830
22 + * https://tools.ietf.org/html/rfc6830
23 + */
24 +public enum LispType {
25 + LISP_MAP_REGISTER, // LISP Map-Register Message
26 + LISP_MAP_NOTIFY, // LISP Map-Notify Message
27 + LISP_MAP_REQUEST, // LISP Map-Request Message
28 + LISP_MAP_REPLY, // LISP Map-Reply Message
29 + LISP_MAP_REPLY_ACTION, // LISP Map-Reply-Action Message
30 + LISP_SOLICIT_MAP_REQUEST; // LISP Solicit-Map-Request Message
31 +}
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 + * LISP message protocols.
18 + */
19 +package org.onosproject.lisp.msg.protocols;
...\ No newline at end of file ...\ No newline at end of file