org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sfcutils.SfcNshHeader.java Source code

Java tutorial

Introduction

Here is the source code for org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sfcutils.SfcNshHeader.java

Source

/*
 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 */

package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sfcutils;

import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;

import com.google.common.net.InetAddresses;

public class SfcNshHeader {
    private final Ipv4Address nshTunIpDst;
    private final PortNumber nshTunUdpPort;
    private final Long nshNspToChain;
    private final Short nshNsiToChain;
    private final Long nshNspFromChain;
    private final Short nshNsiFromChain;
    private final Long nshMetaC1;
    private final Long nshMetaC2;

    private static final int TYPE = 1;

    private SfcNshHeader(SfcNshHeaderBuilder builder) {
        this.nshMetaC1 = builder.nshMetaC1;
        this.nshMetaC2 = builder.nshMetaC2;
        this.nshTunIpDst = builder.nshTunIpDst;
        this.nshTunUdpPort = builder.nshTunUdpPort;
        this.nshNspToChain = builder.nshNspToChain;
        this.nshNspFromChain = builder.nshNspFromChain;
        this.nshNsiToChain = builder.nshNsiToChain;
        this.nshNsiFromChain = builder.nshNsiFromChain;

    }

    public boolean isValid(SfcNshHeader sfcNshHeader) {
        if (sfcNshHeader.nshTunIpDst == null)
            return false;
        if (sfcNshHeader.nshNspToChain == null)
            return false;
        if (sfcNshHeader.nshNspFromChain == null)
            return false;
        if (sfcNshHeader.nshNsiToChain == null)
            return false;
        if (sfcNshHeader.nshNsiFromChain == null)
            return false;
        if (sfcNshHeader.nshMetaC1 == null)
            return false;
        if (sfcNshHeader.nshMetaC2 == null)
            return false;
        return true;
    }

    public Ipv4Address getNshTunIpDst() {
        return nshTunIpDst;
    }

    public PortNumber getNshTunUdpPort() {
        return nshTunUdpPort;
    }

    public Long getNshNspToChain() {
        return nshNspToChain;
    }

    public Short getNshNsiToChain() {
        return nshNsiToChain;
    }

    public Long getNshNspFromChain() {
        return nshNspFromChain;
    }

    public Short getNshNsiFromChain() {
        return nshNsiFromChain;
    }

    public Long getNshMetaC1() {
        return nshMetaC1;
    }

    public Long getNshMetaC2() {
        return nshMetaC2;
    }

    public static Long convertIpAddressToLong(Ipv4Address ipv4Address) {
        return (InetAddresses.coerceToInteger(InetAddresses.forString(ipv4Address.getValue()))) & 0xFFFFFFFFL;
    }

    public static int getType() {
        return TYPE;
    }

    public static class SfcNshHeaderBuilder {
        private Ipv4Address nshTunIpDst;
        private PortNumber nshTunUdpPort;
        private Long nshNspToChain;
        private Short nshNsiToChain;
        private Long nshNspFromChain;
        private Short nshNsiFromChain;
        private Long nshMetaC1;
        private Long nshMetaC2;

        public SfcNshHeader build() {
            SfcNshHeader sfcNshHeader = new SfcNshHeader(this);
            return sfcNshHeader;
        }

        /**
         * SfcNshHeaderBuilder requires following in constructor:
         */
        public SfcNshHeaderBuilder() {

        }

        public SfcNshHeaderBuilder(SfcNshHeader sfcNshHeader) {

            this.nshTunIpDst = sfcNshHeader.nshTunIpDst;
            this.nshTunUdpPort = sfcNshHeader.nshTunUdpPort;
            this.nshNspToChain = sfcNshHeader.nshNspToChain;
            this.nshNsiToChain = sfcNshHeader.nshNsiToChain;
            this.nshNspFromChain = sfcNshHeader.nshNspFromChain;
            this.nshNsiFromChain = sfcNshHeader.nshNsiFromChain;
            this.nshMetaC1 = sfcNshHeader.nshMetaC1;
            this.nshMetaC2 = sfcNshHeader.nshMetaC2;
        }

        public SfcNshHeaderBuilder setNshTunIpDst(Ipv4Address nshTunIpDst) {
            this.nshTunIpDst = nshTunIpDst;
            return this;
        }

        public SfcNshHeaderBuilder setNshTunUdpPort(PortNumber nshTunUdpPort) {
            this.nshTunUdpPort = nshTunUdpPort;
            return this;
        }

        public SfcNshHeaderBuilder setNshNspToChain(Long nshNspToChain) {
            this.nshNspToChain = nshNspToChain;
            return this;
        }

        public SfcNshHeaderBuilder setNshNsiToChain(Short nshNsiToChain) {
            this.nshNsiToChain = nshNsiToChain;
            return this;
        }

        public SfcNshHeaderBuilder setNshNspFromChain(Long nshNspFromChain) {
            this.nshNspFromChain = nshNspFromChain;
            return this;
        }

        public SfcNshHeaderBuilder setNshNsiFromChain(Short nshNsiFromChain) {
            this.nshNsiFromChain = nshNsiFromChain;
            return this;
        }

        public SfcNshHeaderBuilder setNshMetaC1(Long nshMetaC1) {
            this.nshMetaC1 = nshMetaC1;
            return this;
        }

        public SfcNshHeaderBuilder setNshMetaC2(Long nshMetaC2) {
            this.nshMetaC2 = nshMetaC2;
            return this;
        }

    }

}