aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepFecObjectIPv4Adjacency.java
blob: 5520529990db9559def770c5dd04a3b8dc7b7d70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*
 * Copyright 2015 Open Networking Laboratory
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.onosproject.pcepio.protocol;

import org.jboss.netty.buffer.ChannelBuffer;
import org.onosproject.pcepio.exceptions.PcepParseException;
import org.onosproject.pcepio.types.PcepObjectHeader;

/**
 * Abstraction of an entity providing FEC Object of Type 3 IPv4 Adjacency.
 */
public interface PcepFecObjectIPv4Adjacency extends PcepFecObject {

    /**
     * Returns Local IPv4Address of FEC Object.
     *
     * @return Local IPv4Address of FEC Object
     */
    int getLocalIPv4Address();

    /**
     * Sets Local IPv4Address with specified value.
     *
     * @param value Local IPv4Address
     */
    void seLocalIPv4Address(int value);

    /**
     * Returns Remote IPv4Address of FEC Object.
     *
     * @return Remote IPv4Address of FEC Object
     */
    int getRemoteIPv4Address();

    /**
     * Sets Remote IPv4Address with specified value.
     *
     * @param value Remote IPv4Address
     */
    void seRemoteIPv4Address(int value);

    @Override
    int write(ChannelBuffer bb) throws PcepParseException;

    /**
     * Builder interface with get and set functions to build FEC object.
     */
    interface Builder {

        /**
         * Builds FEC Object IPv4 Adjacency.
         *
         * @return FEC Object IPv4 Adjacency
         * @throws PcepParseException while building FEC IPv4 Adjacency object.
         */
        PcepFecObjectIPv4Adjacency build() throws PcepParseException;

        /**
         * Returns FEC Object IPv4 Adjacency header.
         *
         * @return FEC Object IPv4 Adjacency header
         */
        PcepObjectHeader getFecIpv4AdjacencyObjHeader();

        /**
         * Sets FEC Object IPv4 Adjacency header and returns its builder.
         *
         * @param obj FEC Object IPv4 Adjacency header
         * @return Builder by setting FEC Object IPv4 header
         */
        Builder setFecIpv4AdjacencyObjHeader(PcepObjectHeader obj);

        /**
         * Returns Local IPv4Address of FEC Object.
         *
         * @return Local IPv4Address of FEC Object
         */
        int getLocalIPv4Address();

        /**
         * Sets Local IPv4Address and returns its builder.
         *
         * @param value Local IPv4Address
         * @return Builder by setting Local IPv4Address
         */
        Builder seLocalIPv4Address(int value);

        /**
         * Sets Remote IPv4Address with specified value.
         *
         * @return Remote IPv4 Address
         */
        int getRemoteIPv4Address();

        /**
         * Sets Remote IPv4Address and returns its builder.
         *
         * @param value Remote IPv4Address
         * @return Builder by setting Remote IPv4Address
         */
        Builder seRemoteIPv4Address(int value);

        /**
         * Sets P flag in FEC object header and returns its builder.
         *
         * @param value boolean value to set P flag
         * @return Builder by setting P flag
         */
        Builder setPFlag(boolean value);

        /**
         * Sets I flag in FEC object header and returns its builder.
         *
         * @param value boolean value to set I flag
         * @return Builder by setting I flag
         */
        Builder setIFlag(boolean value);
    }
}