From 36424f46ff5543c2ae475c60bb3e08f299c55799 Mon Sep 17 00:00:00 2001 From: Ed Warnicke Date: Sun, 10 Jan 2016 06:15:18 -0800 Subject: Initial honeycomb code commit. This commit drops the basic structure with disabled integration tests. The tests will be enabled in a follow-up patch, which sorts out the current .so loading problems. Change-Id: If70f2f13b2cf49af82996f884218ac05d335c2ed Signed-off-by: Ed Warnicke Signed-off-by: Robert Varga --- .../v3po/impl/InterfaceStateIpv4Builder.java | 94 ++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/InterfaceStateIpv4Builder.java (limited to 'v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/InterfaceStateIpv4Builder.java') diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/InterfaceStateIpv4Builder.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/InterfaceStateIpv4Builder.java new file mode 100644 index 000000000..5e2141d6f --- /dev/null +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/InterfaceStateIpv4Builder.java @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2015 Cisco and/or its affiliates. + * + * 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 io.fd.honeycomb.v3po.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.IpAddressOrigin; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.NeighborOrigin; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces.state._interface.Ipv4; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces.state._interface.Ipv4Builder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces.state._interface.ipv4.Address; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces.state._interface.ipv4.AddressBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces.state._interface.ipv4.Neighbor; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces.state._interface.ipv4.NeighborBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces.state._interface.ipv4.address.subnet.PrefixLength; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces.state._interface.ipv4.address.subnet.PrefixLengthBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress; + +public class InterfaceStateIpv4Builder { + private List
addrs = new ArrayList
(); + private List neighbors = new ArrayList(); + private Ipv4Builder ipv4Builder = new Ipv4Builder(); + + /** + * TODO-ADD-JAVADOC. + */ + public void addAddress(String ipv4Addr, short prefixLength, IpAddressOrigin origin) { + // address + AddressBuilder addrBuilder = new AddressBuilder(); + + // IpAddressOrigin.Static + addrBuilder.setOrigin(origin); // FIXME: how to find origin? + + PrefixLength prefixLen = new PrefixLengthBuilder().setPrefixLength(prefixLength).build(); + addrBuilder.setSubnet(prefixLen); + + addrBuilder.setIp(new Ipv4AddressNoZone(ipv4Addr)); + + addrs.add(addrBuilder.build()); + } + + /** + * TODO-ADD-JAVADOC. + */ + public void addNeighbor(String ipv4Addr, String physAddr, NeighborOrigin origin) { + // address neighbor + NeighborBuilder nbrBuilder = new NeighborBuilder(); + nbrBuilder.setIp(new Ipv4AddressNoZone(ipv4Addr)); + nbrBuilder.setLinkLayerAddress(new PhysAddress(physAddr)); // TODO ("00:00:00:00:00:00") + nbrBuilder.setOrigin(origin); + + neighbors.add(nbrBuilder.build()); + } + + /** + * TODO-ADD-JAVADOC. + */ + public void setForwarding(boolean fwd) { + ipv4Builder.setForwarding(fwd); + } + + /** + * TODO-ADD-JAVADOC. + */ + public void setMtu(int mtu) { + ipv4Builder.setMtu(mtu); + } + + /** + * TODO-ADD-JAVADOC. + */ + public Ipv4 build() { + ipv4Builder.setAddress(addrs); + ipv4Builder.setNeighbor(neighbors); + return ipv4Builder.build(); + } +} + -- cgit 1.2.3-korg