2 * Copyright 2015 Open Networking Laboratory
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org.onosproject.pcepio.protocol;
19 import org.jboss.netty.buffer.ChannelBuffer;
20 import org.onosproject.pcepio.exceptions.PcepParseException;
21 import org.onosproject.pcepio.types.PcepObjectHeader;
24 * Abstraction of an entity providing PCEP FEC Object of Type is 5 Unnumbered Adjacency with IPv4 NodeIDs.
26 public interface PcepFecObjectIPv4UnnumberedAdjacency extends PcepFecObject {
29 * Returns Local NodeID of FEC Object.
31 * @return Local NodeID of FEC Object
36 * Sets Local NodeID with specified value.
38 * @param value Local NodeID
40 void setLocalNodeID(int value);
43 * Returns Local InterfaceID of FEC Object.
45 * @return Local InterfaceID of FEC Object
47 int getLocalInterfaceID();
50 * Sets Local InterfaceID with specified value.
52 * @param value Local InterfaceID
54 void setLocalInterfaceID(int value);
57 * Returns Remote NodeID of FEC Object.
59 * @return Remote NodeID of FEC Object
61 int getRemoteNodeID();
64 * Sets Remote NodeID with specified value.
66 * @param value Remote NodeID
68 void setRemoteNodeID(int value);
71 * Returns Remote InterfaceID of FEC Object.
73 * @return Remote InterfaceID of FEC Object
75 int getRemoteInterfaceID();
78 * Sets Remote InterfaceID with specified value.
80 * @param value Remote InterfaceID
82 void setRemoteInterfaceID(int value);
85 int write(ChannelBuffer bb) throws PcepParseException;
88 * Builder interface with get and set functions to build bandwidth object.
93 * Builds FEC Unnumbered Adjacency with IPv4 Object.
95 * @return FEC Unnumbered Adjacency with IPv4 Object
96 * @throws PcepParseException when building FEC IPv4 Unnumbered Adjacency object.
98 PcepFecObjectIPv4UnnumberedAdjacency build() throws PcepParseException;
101 * Returns FEC Unnumbered Adjacency with IPv4 header.
103 * @return FEC Unnumbered Adjacency with IPv4 header
105 PcepObjectHeader getFecIpv4UnnumberedAdjacencyObjHeader();
108 * Sets FEC Unnumbered Adjacency with IPv4 header and returns its builder.
110 * @param obj FEC Unnumbered Adjacency with IPv4 header
111 * @return Builder by setting FEC Unnumbered Adjacency with IPv4 header
113 Builder setFecIpv4UnnumberedAdjacencyObjHeader(PcepObjectHeader obj);
116 * Returns Local NodeID of FEC Object.
118 * @return Local NodeID of FEC Object
120 int getLocalNodeID();
123 * Sets Local NodeID and returns its builder.
125 * @param value Local NodeID
126 * @return Builder by setting Local NodeID
128 Builder setLocalNodeID(int value);
131 * Returns Local InterfaceID of FEC Object.
133 * @return Local InterfaceID of FEC Object
135 int getLocalInterfaceID();
138 * Sets Local InterfaceID and returns its builder.
140 * @param value Local InterfaceID
141 * @return Builder by setting Local InterfaceID
143 Builder setLocalInterfaceID(int value);
146 * Returns Remote NodeID of FEC Object.
148 * @return Remote NodeID of FEC Object
150 int getRemoteNodeID();
153 * Sets Remote NodeID and returns its builder.
155 * @param value Remote NodeID
156 * @return Builder by setting Remote NodeID
158 Builder setRemoteNodeID(int value);
161 * Returns Remote InterfaceID of FEC Object.
163 * @return Remote InterfaceID of FEC Object
165 int getRemoteInterfaceID();
168 * Sets Remote InterfaceID and returns its builder.
170 * @param value Remote InterfaceID
171 * @return Builder by setting Remote InterfaceID
173 Builder setRemoteInterfaceID(int value);
176 * Sets P flag in FEC object header and returns its builder.
178 * @param value boolean value to set P flag
179 * @return Builder by setting P flag
181 Builder setPFlag(boolean value);
184 * Sets I flag in FEC object header and returns its builder.
186 * @param value boolean value to set I flag
187 * @return Builder by setting I flag
189 Builder setIFlag(boolean value);