package net.decix.alu; /* * This file is part of jFlowLib. * * Copyright (c) 2015 DE-CIX Management GmbH <http://www.de-cix.net> - All rights * reserved. * * Author: Thomas King <thomas.king@de-cix.net> * * This software is licensed under the Apache License, version 2.0. A copy of * the license agreement is included in this distribution. */ public class InnerAndOuterVlanIDs { private int mInnerVlanId = 0; private int mOuterVlanId = 0; public InnerAndOuterVlanIDs() { } public int getInnerVlanId() { return mInnerVlanId; } public void setInnerVlanId(int innerVlanId) { this.mInnerVlanId = innerVlanId; } public int getOuterVlanId() { return mOuterVlanId; } public void setOuterVlanId(int outerVlanId) { this.mOuterVlanId = outerVlanId; } public String toString() { return new String("Inner Vlan ID: " + mInnerVlanId + ", Outer Vlan ID: " + mOuterVlanId); } public static InnerAndOuterVlanIDs parse(int interfaceIndex) { InnerAndOuterVlanIDs innerAndOuter = new InnerAndOuterVlanIDs(); int innerVlanId = (interfaceIndex & 0x0000FFFF); innerAndOuter.setInnerVlanId(innerVlanId); int outerVlanId = (interfaceIndex & 0xFFFF0000); outerVlanId = (outerVlanId >> 16); innerAndOuter.setOuterVlanId(outerVlanId); return innerAndOuter; } public int toInterfaceIndex() { int interfaceIndex = mOuterVlanId << 16; interfaceIndex = interfaceIndex | mInnerVlanId; return interfaceIndex; } public static void main(String args[]) { InnerAndOuterVlanIDs iaovi = new InnerAndOuterVlanIDs(); iaovi.setInnerVlanId(2); iaovi.setOuterVlanId(104); System.out.println(iaovi.toInterfaceIndex()); iaovi = InnerAndOuterVlanIDs.parse(1401); System.out.println("Inner: " + iaovi.getInnerVlanId()); System.out.println("Outer: " + iaovi.getOuterVlanId()); } }