diff options
Diffstat (limited to 'Monitoring/MonitoringTool/PacketTracking')
510 files changed, 51793 insertions, 0 deletions
diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/Aggregator.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/Aggregator.py new file mode 100644 index 0000000..a3ed8c9 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/Aggregator.py @@ -0,0 +1,385 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +# System imports +from time import strptime, strftime, localtime, mktime +from sys import maxint + +# Project imports +from DBAccess import DBAccess +from DelayPlotter import DelayPlotter +from Task.Passive.Monitoring.SliceManager.SliceManager import SliceManager +from Task.Passive.Monitoring.DataTypes import Node, Status +from Task.Passive.Monitoring.DataTypes import PtVolumeStats +from Task.Passive.Monitoring.DataTypes import PtHopStats +from Task.Passive.Monitoring.DataTypes import PtPathStats +from Task.Passive.Monitoring.DataTypes import PtActivity + +# Constants DO NOT EDIT! +NUM = 0 +SUMBYTES = 1 +SUMDELAY = 2 +MINDELAY = 3 +MAXDELAY = 4 +PATH = 5 +TS = 5 +# Constants + +class Aggregator(object): + def __init__(self): + self.__noviDB = DBAccess("127.0.0.1", 5432, "noviDB", + "novi_user","novi123") + self.__sliceDB = SliceManager("127.0.0.1", 5432, "noviDB", + "novi_user", "novi123") + self.__delayPlotter = DelayPlotter() + + def __checkHashFuntion(self, function): + """ + Method to check if the given 'function' is a valid PT hashing function + @type Function: str + @param Function: String that contains the name of the + hashing function. + @rtype boolean + @return Returns 'true' if the function is a valid + hashing function, 'false' otherwise + """ + return function in ["BOB", "OAAT", "TWMX", "HSIEH"] + + def __checkDateTime(self, timeString): + """ + Method that checks if a given time string is valid, according to the + ISO time format ("YYYY-MM-DDThh:mm:ss"). If its valid the string is + converted to Pythons specific 9 floating values format (time_struct) + and returned to the caller. + @type timeString: str + @param timeString: The string that contains the time, which + should be verified. + @rtype: struct_time + @return: Time in Python specific 9 floating values + format. + """ + timeTuple = localtime() + try: + timeTuple= strptime(timeString, "%Y-%m-%dT%H:%M:%S") + except ValueError: + print ("Wrong date/time format, time must be provided in the" + " following format 'YYYY-MM-DDThh:mm:ss'") + print ("Time set to: " + strftime("%Y-%m-%dT%H:%M:%S", timeTuple)) + return timeTuple + + def __checkNodeList(self, nodeList): + """ + Check the validity of the given nodeList, if one of the nodes is neither + of type int nor of type Node the method raises an exception. For int + values in the list the method converts them to a Node with Oid from the + int value. The method also checks if all nodes are in the booked slice, + if not the concerning node is removed from the list. + @type nodeList: list + @param nodeList: List of nodes that should be validated. + @rtype: list + @return: New list with only valid nodes. + """ + for i in range(len(nodeList)): + nodeList[i] = self.__makeNodeFromOid(nodeList[i]) + return [node for node in nodeList if self.__sliceDB.validateNode(node)] + + def __checkNodeList2D(self, nodeList2D): + """ + Check the validity of the given nodeList2D, if one of the nodes tuples + is not of type tuple with the length of 2 the method raises an + exception. The method also checks if all nodes are in the booked slice, + if not the concerning node tuple is removed from the list. + @type nodeList2D: list + @param nodeList2D: List of nodes that should be validated. + @rtype: list + @return: New list with only valid node tuples. + """ + for i in range(len(nodeList2D)): + nodeList2D[i] = self.__makeNodeTupleFromOid(nodeList2D[i]) + return [nodeTuple for nodeTuple in nodeList2D if + (self.__sliceDB.validateNode(nodeTuple[0]) and + self.__sliceDB.validateNode(nodeTuple[1]))] + + def __checkNodeTuple(self, nodeTuple): + """ + Checks if both tuple entries are valid nodes. + @type nodeTuple: tuple + @param nodeTuple Tuple that should be checked for validity + @type tuple + @return: The old tuple if everything is all right or + an empty tuple if the tuple containes invalid + datatypes or is not in the booked slice + """ + nodeTuple = self.__makeNodeTupleFromOid(nodeTuple) + return nodeTuple if (self.__sliceDB.validateNode(nodeTuple[0]) and + self.__sliceDB.validateNode(nodeTuple[1])) else () + + def __makeNodeFromOid(self, value): + """ + This method checks whether the given 'value' is of type Node or int + (OID), if it is an int, it returns a new Node, with the given + 'value' as OID, otherwise it just returns the Node. + @type value: int/Node + @param value: The value that is checked if it is of type int + or Node. + @rtype Node + @return Newly created node if 'value' was int, or just + returning the given value if the type already + was Node. + """ + if type(value).__name__ == "int": + return Node.Node(value) + elif type(value).__name__ == "Node": + return value + else: + raise TypeError("'node' must be of type 'int' or 'Node'") + + def __makeNodeTupleFromOid(self, nodeTuple): + if type(nodeTuple).__name__ == "tuple" and len(nodeTuple) == 2: + return (self.__makeNodeFromOid(nodeTuple[0]), + self.__makeNodeFromOid(nodeTuple[1])) + else: + raise TypeError("'nodeTuple' must be of type 'tuple' and length " + "must be 2") + + def getPtVolumeStats(self, startTime, stopTime, nodeList): + # Check if all given parameters are valid + startTime = self.__checkDateTime(startTime) # struct_time + stopTime = self.__checkDateTime(stopTime) # struct_time + nodeList = self.__checkNodeList(nodeList) + stats = [] + + for node in nodeList: + maxDelay = 0 + minDelay = maxint + byteCount = 0 + avgPktSize = 0 + number = 0 + + rows = self.__noviDB.selectDelayEntrys(startTime, stopTime, + node.oid) + if len(rows) != 0: + for row in rows: + if (row[MAXDELAY] > maxDelay): + maxDelay = row[MAXDELAY] + if (row[MINDELAY] < minDelay): + minDelay = row[MINDELAY] + byteCount += row[SUMBYTES] + number += row[NUM] + + if number != 0: + avgPktSize = byteCount/number + stats.append(PtVolumeStats.PtVolumeStats(startTime, stopTime, node, + number, avgPktSize)) + return stats + + def getPtHopStats(self, startTime, stopTime, nodeList2D): + # Check if all given parameters are valid + startTime = self.__checkDateTime(startTime) # struct_time + stopTime = self.__checkDateTime(stopTime) # struct_time + nodeList2D = self.__checkNodeList2D(nodeList2D) + stats = [] + + for nodeTuple in nodeList2D: + src = nodeTuple[0] + dst = nodeTuple[1] + + maxDelay = 0 + minDelay = maxint + byteCount = 0 + avgPktSize = 0 + delayCount = 0 + avgDelay = 0 + number = 0 + + rows = self.__noviDB.selectHopDelays(startTime, stopTime, + src.oid, dst.oid) + if len(rows) != 0: + for row in rows: + if (row[MAXDELAY] > maxDelay): + maxDelay = row[MAXDELAY] + if (row[MINDELAY] < minDelay): + minDelay = row[MINDELAY] + byteCount += row[SUMBYTES] + delayCount += row[SUMDELAY] + number += row[NUM] + + if number != 0: + avgPktSize = byteCount/number + avgDelay = delayCount/number + + stats.append(PtHopStats.PtHopStats(startTime, stopTime, src, dst, + number, avgDelay, avgPktSize)) + return stats + + def getPtPathStats(self, startTime, stopTime, nodeTuple): + # Check if all given parameters are valid + startTime = self.__checkDateTime(startTime) # struct_time + stopTime = self.__checkDateTime(stopTime) # struct_time + nodeTuple = self.__checkNodeTuple(nodeTuple) + stats = [] + + if len(nodeTuple) == 0: + return stats + src = nodeTuple[0] + dst = nodeTuple[1] + path = "" + + rows = self.__noviDB.selectPathDelays(startTime, stopTime, + src.oid, dst.oid) + if len(rows) != 0: + for row in rows: + if len(path) == 0: + maxDelay = 0 + minDelay = maxint + byteCount = 0 + avgPktSize = 0 + delayCount = 0 + avgDelay = 0 + number = 0 + path = row[PATH] + if row[PATH] != path: + stats.append(PtPathStats.PtPathStats(startTime, stopTime, + src, dst, number, + avgPktSize, avgDelay, + path)) + path = "" + else: + if (row[MAXDELAY] > maxDelay): + maxDelay = row[MAXDELAY] + if (row[MINDELAY] < minDelay): + minDelay = row[MINDELAY] + byteCount += row[SUMBYTES] + delayCount += row[SUMDELAY] + number += row[NUM] + + if number != 0: + avgPktSize = byteCount/number + avgDelay = delayCount/number + + stats.append(PtPathStats.PtPathStats(startTime, stopTime, src, dst, + number, avgPktSize, avgDelay, + path)) + return stats + + def getPtActivity(self, startTime, stopTime, nodeList): + # Check if all given parameters are valid + startTime = self.__checkDateTime(startTime) # struct_time + stopTime = self.__checkDateTime(stopTime) # struct_time + nodeList = self.__checkNodeList(nodeList) + stats = [] + + for node in nodeList: + activity = 0 + packets = 0 + percentile = 0 + + rows = self.__noviDB.selectActivityEntries(startTime, stopTime, + node.oid) + if len(rows) != 0: + for row in rows: + packets += row[NUM] + + activity = packets*self.__sliceDB.selectActivityThreshold(node.oid) + + if(mktime(stopTime) - mktime(startTime) != 0): + percentile = activity*100 /((mktime(stopTime) - + mktime(startTime)) *1000*1000) + + if percentile > 100: + percentile = 100 + stats.append(PtActivity.PtActivity(startTime, stopTime, node, + percentile)) + return stats + + def restartPtCollector(self): + # Carsten/Jens + print "restartPtCollector" + return Status.Status() + + def restartPtProbes(self, nodeList): + # Carsten/Jens + print "restartPtProbes" + return Status.Status() + + def purgePtDatabase(self, startTime, stopTime): + #TODO: Fix the return type to a real Status + self.__noviDB.purgeDelayDB(startTime, stopTime) + return Status.Status() + + def setPtHashRange(self, range): + #TODO: Fix the return type to a real Status + try: + if int(range) <= 100 and int(range) > 0: + self.__sliceDB.updateHashRange(range) + return Status.Status() + else: + raise ValueError + except ValueError: + print "Invalid range, value must an integer between 1 and 100." + return Status.Status(-1) + + def setPtHashFunction(self, hashFunction): + #TODO: Fix the return type to a real Status + if self.__checkHashFuntion(hashFunction): + self.__sliceDB.updateHashFunction(hashFunction) + return Status.Status() + else: + print hashFunction + ": Unknown hashing function." + return Status.Status(-1) + + + def setPtActivityThreshold(self, timeMSec): + #TODO: Fix the return type to a real Status + self.__sliceDB.updateActivityThreshold(timeMSec) + return Status.Status() + + def viewPtPathTracks(self, startTime, stopTime, nodeList): + # Spaeter + print "viewPtPathTracks" + return Status.Status() + + def viewPtHopTracks(self, startTime, stoptime, nodeList2D): + # Spaeter + print "viewPtHopTracks" + return Status.Status() + + def plotPtPathStats(self, startTime, stopTime, nodeList): + print "plotPtPathStats" + return Status.Status() + + def plotPtHopStats(self, startTime, stopTime, nodeList2D): + # Check if all given parameters are valid + startTime = self.__checkDateTime(startTime) # struct_time + stopTime = self.__checkDateTime(stopTime) # struct_time + nodeList2D = self.__checkNodeList2D(nodeList2D) + + for nodeTuple in nodeList2D: + src = nodeTuple[0] + dst = nodeTuple[1] + delaysY = [] + timeX = [] + + rows = self.__noviDB.selectHopDelays(startTime, stopTime, + src.oid, dst.oid) + if len(rows) != 0: + for row in rows: + delaysY.append(row[SUMDELAY]/row[NUM]) + timeX.append(row[TS]) + self.__delayPlotter.plotStats(timeX, delaysY) + else: + return Status.Status(-1) + + return Status.Status() diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/DBAccess.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/DBAccess.py new file mode 100644 index 0000000..966fb5d --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/DBAccess.py @@ -0,0 +1,124 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from time import mktime + +from Task.Passive.Monitoring.Database.DBConnector import DBConnector + +class DBAccess(DBConnector): + def __init__(self, host = "127.0.0.1", port = 5432, + db = "dump", user = "user", pwd = "pwd"): + DBConnector.__init__(self, host, port, db, user, pwd) + + def selectDelayEntrys(self, startTime, stopTime, nodeOid): + """ + Function to select a set of delay information from the database. The + statement calls 'SELECT num, sumbytes, sumdelay, mindelay, maxdelay FROM + delays WHERE (ts >= startTime AND ts <= stopTime) AND (src = nodeOid OR + dst = nodeOid);'. + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param stopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @rtype: list + @return: List of rows that match the time interval and also + the nodes OID + """ + startTimeString = str(int(mktime(startTime)*1000*1000)) # sec->musec + stopTimeString = str(int(mktime(stopTime)*1000*1000)) # sec->musec + statement = ("SELECT num, sumbytes, sumdelay, mindelay, maxdelay " + "FROM hop_delays WHERE (ts >= " + startTimeString + + " AND ts <= " + stopTimeString + ") AND (src = " + + str(nodeOid) + " OR dst = " + str(nodeOid) + ");") + connection = self.connect() + rows = self.executeSelect(connection, statement) + self.disconnect(connection) + return rows + + def selectActivityEntries(self, startTime, stopTime, nodeOid): + """ + Method to get the activity of a node (number of packets in the defined + time interval). + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param stopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @rtype: list + @return: List of rows that match the time interval and also + the nodes OID + """ + startTimeString = str(int(mktime(startTime)*1000*1000)) # sec->musec + stopTimeString = str(int(mktime(stopTime)*1000*1000)) # sec->musec + statement = ("SELECT num FROM hop_delays WHERE (ts >= " + + startTimeString + " AND ts <= " + stopTimeString + ") " + "AND (src = " + str(nodeOid) + " OR dst = " + + str(nodeOid) + ");") + connection = self.connect() + rows = self.executeSelect(connection, statement) + self.disconnect(connection) + return rows + + def selectPathDelays(self, startTime, stopTime, srcOid, dstOid): + startTimeString = str(int(mktime(startTime)*1000*1000)) # sec->musec + stopTimeString = str(int(mktime(stopTime)*1000*1000)) # sec->musec + statement = ("SELECT num, sumbytes, sumdelay, mindelay, maxdelay, path " + "FROM path_delays WHERE (ts >= " + startTimeString + + " AND ts <= " + stopTimeString + ") AND (src = " + + str(srcOid) + " AND dst = " + str(dstOid) + ") " + "ORDER BY path ASC;") + connection = self.connect() + rows = self.executeSelect(connection, statement) + self.disconnect(connection) + return rows + + def selectHopDelays(self, startTime, stopTime, srcOid, dstOid): + startTimeString = str(int(mktime(startTime)*1000*1000)) # sec->musec + stopTimeString = str(int(mktime(stopTime)*1000*1000)) # sec->musec + statement = ("SELECT num, sumbytes, sumdelay, mindelay, maxdelay, ts " + "FROM hop_delays WHERE (ts >= " + startTimeString + + " AND ts <= " + stopTimeString + ") AND (src = " + + str(srcOid) + " AND dst = " + str(dstOid) + ");") + connection = self.connect() + rows = self.executeSelect(connection, statement) + self.disconnect(connection) + return rows + + def purgeDelayDB(self, startTime, stopTime): + """ + Function to remove a set of observed tracks from the database in the + interval between 'StartTime' and 'StopTime'. The statement calls 'DELETE + FROM delays WHERE (ts >= startTime AND ts <= stopTime);' + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param stopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @rtype: Integer + @return: Returns the number of purged rows on success -1 + otherwise. + """ + startTimeString = str(int(mktime(startTime)*1000*1000)) # sec->musec + stopTimeString = str(int(mktime(stopTime)*1000*1000)) # sec->musec + statement = ("DELETE FROM hop_delays WHERE (ts >= " + startTimeString + + " AND ts <= " + stopTimeString + ");") + connection = self.connect() + self.executeUpdate(connection, statement) + self.disconnect(connection) + diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/DelayPlotter.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/DelayPlotter.py new file mode 100644 index 0000000..36e9d5a --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/DelayPlotter.py @@ -0,0 +1,24 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from matplotlib.pyplot import plot, show + +class DelayPlotter(object): + def __init__(self): + pass + + def plotStats(self, x, y): + plot(x,y) + show()
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/__init__.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/__init__.py new file mode 100644 index 0000000..fcc3deb --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Aggregator/__init__.py @@ -0,0 +1,22 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from Aggregator import Aggregator + +def main(): + A = Aggregator() + +if __name__ == "__main__": + main()
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/Node.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/Node.py new file mode 100644 index 0000000..98f9017 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/Node.py @@ -0,0 +1,34 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from IPy import IP + +class Node(object): + def __init__(self, oid = 0, ip = "0.0.0.0", + latitude = 0.0, longitude = 0.0): + self.oid = oid + self.ip = ip + self.latitude = latitude + self.longitude = longitude + + def set_ip(self, ip): + try: + IP(ip) + self.ip = ip + except ValueError: + self.ip = "0.0.0.0" + + def __str__(self): + return (str(self.oid) + " (" + str(self.ip) + ")") diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtActivity.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtActivity.py new file mode 100644 index 0000000..766761a --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtActivity.py @@ -0,0 +1,53 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from time import mktime, time, strftime, localtime + +from Task.Passive.Monitoring.DataTypes import Node + +class PtActivity(object): + def __init__(self, startTime = time(), stopTime = time(), + node = Node.Node(), activity = 0): + self.startTime = mktime(startTime) + self.stopTime = mktime(stopTime) + self.node = node + self.activity = activity + + def __str__(self): + startTime = strftime("%a, %d %b %Y %H:%M:%S", localtime(self.startTime)) + stopTime = strftime("%a, %d %b %Y %H:%M:%S", localtime(self.stopTime)) + return ("PtActivity:\n" + " Node (Oid): " + str(self.node) + "\n" + " StartTime: " + startTime + "\n" + " StopTime: " + stopTime + "\n" + " Activity: " + str(self.activity) + " %") + + def set_StartTime(self, StartTime): + """ + Overwritten setter functions to convert the time_struct into a real + timestamp. + @type StartTime: struct_time + @param StartTime Time that defines the start of the observation + """ + self.StartTime = mktime(StartTime) + + def set_StopTime(self, StopTime): + """ + Overwritten setter functions to convert the time_struct into a real + timestamp. + @type StartTime: struct_time + @param StartTime Time that defines the end of the observation + """ + self.StopTime = mktime(StopTime)
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtHopStats.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtHopStats.py new file mode 100644 index 0000000..4e887fa --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtHopStats.py @@ -0,0 +1,67 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from time import mktime, time, strftime, localtime + +from Task.Passive.Monitoring.DataTypes import Node + +class PtHopStats(object): + """ + Packet tracking Hop statistics, i.e. delay/volume statistics between two + neighbor Pt probes + """ + def __init__(self, startTime = time(), stopTime = time(), + src = Node.Node(), dst = Node.Node(), number = 0, + avgPktSize = 0, avgDelay = 0): + self.startTime = mktime(startTime) + self.stopTime = mktime(stopTime) + self.src = src + self.dst = dst + self.number = number + self.avgPktSize = avgPktSize + self.avgDelay = avgDelay + + def __str__(self): + startTime = strftime("%a, %d %b %Y %H:%M:%S", + localtime(self.startTime)) + stopTime = strftime("%a, %d %b %Y %H:%M:%S", + localtime(self.stopTime)) + return ("PtHopStats:\n" + " Src. Node: " + str(self.src) + "\n" + + " Dst. Node: " + str(self.dst) + "\n" + + " StartTime: " + startTime + "\n" + + " StopTime: " + stopTime + "\n" + + " Packets: " + str(self.number) + " Pkts\n" + " Avg. Pktsize: " + str(self.avgPktSize) + " Bytes\n" + + " Avg. Delay: " + str(self.avgDelay) + " ms") + + def set_startTime(self, startTime): + """ + Overwritten setter functions to convert the time_struct into a real + timestamp. + @type StartTime: struct_time + @param StartTime Time that defines the start of the + observation + """ + self.startTime = mktime(startTime) + + def set_stopTime(self, stopTime): + """ + Overwritten setter functions to convert the time_struct into a real + timestamp. + @type StartTime: struct_time + @param StartTime Time that defines the end of the observation + """ + self.stopTime = mktime(stopTime)
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtPathStats.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtPathStats.py new file mode 100644 index 0000000..332087c --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtPathStats.py @@ -0,0 +1,64 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from time import mktime, time, strftime, localtime + +from Task.Passive.Monitoring.DataTypes import Node + +class PtPathStats(object): + def __init__(self, startTime = time(), stopTime = time(), src = Node.Node(), + dst = Node.Node(), number = 0, avgPktSize = 0, + avgDelay = 0, path = ""): + self.startTime = mktime(startTime) + self.stopTime = mktime(stopTime) + self.src = src + self.dst = dst + self.number = number + self.avgPktSize = avgPktSize + self.avgDelay = avgDelay + self.path = path + + def __str__(self): + startTime = strftime("%a, %d %b %Y %H:%M:%S", + localtime(self.startTime)) + stopTime = strftime("%a, %d %b %Y %H:%M:%S", + localtime(self.stopTime)) + return ("PtPathStats:\n" + " Src. Node: " + str(self.src) + "\n" + + " Dst. Node: " + str(self.dst) + "\n" + + " Path: " + self.path + "\n" + + " StartTime: " + startTime + "\n" + + " StopTime: " + stopTime + "\n" + + " Packets: " + str(self.number) + " Pkts\n" + " Avg. Pktsize: " + str(self.avgPktSize) + " Bytes\n" + + " Avg. Delay: " + str(self.avgDelay) + " ms") + + def set_startTime(self, startTime): + """ + Overwritten setter functions to convert the time_struct into a real + timestamp. + @type StartTime: struct_time + @param StartTime Time that defines the start of the observation + """ + self.startTime = mktime(startTime) + + def set_stopTime(self, stopTime): + """ + Overwritten setter functions to convert the time_struct into a real + timestamp. + @type StartTime: struct_time + @param StartTime Time that defines the end of the observation + """ + self.stopTime = mktime(stopTime)
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtVolumeStats.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtVolumeStats.py new file mode 100644 index 0000000..78bce1e --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/PtVolumeStats.py @@ -0,0 +1,60 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from time import mktime, time, strftime, localtime + +from Task.Passive.Monitoring.DataTypes import Node + +class PtVolumeStats(object): + """ + (at least) number of packets and bytes observed by a Node + """ + def __init__(self, startTime = time(), stopTime = time(), + node = Node.Node(), number = 0, avgPktSize = 0): + self.startTime = mktime(startTime) + self.stopTime = mktime(stopTime) + self.node = node + self.number = number + self.avgPktSize = avgPktSize + + def __str__(self): + startTime = strftime("%a, %d %b %Y %H:%M:%S", localtime(self.startTime)) + stopTime = strftime("%a, %d %b %Y %H:%M:%S", localtime(self.stopTime)) + Str = ("PtVolumeStats:\n" + " Node: " + str(self.node) + "\n" + + " StartTime: " + startTime + "\n" + + " StopTime: " + stopTime + "\n" + + " Packets: " + str(self.number) + "\n" + + " Avg. Pktsize: " + str(self.avgPktSize) + " Bytes") + return Str + + + def set_StartTime(self, StartTime): + """ + Overwritten setter functions to convert the time_struct into a real + timestamp. + @type StartTime: struct_time + @param StartTime Time that defines the start of the observation + """ + self.StartTime = mktime(StartTime) + + def set_StopTime(self, StopTime): + """ + Overwritten setter functions to convert the time_struct into a real + timestamp. + @type StartTime: struct_time + @param StartTime Time that defines the end of the observation + """ + self.StopTime = mktime(StopTime)
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/Status.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/Status.py new file mode 100644 index 0000000..6206c57 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/Status.py @@ -0,0 +1,25 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + + +class Status(object): + """ + Class to handle different errors, and also throw exceptions + """ + def __init__(self, status = 0): + self.status = status + + def __str__(self): + return ("Status:" + str(self.status))
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/__init__.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/__init__.py new file mode 100644 index 0000000..92936f3 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/DataTypes/__init__.py @@ -0,0 +1,15 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/Database/DBConnector.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Database/DBConnector.py new file mode 100644 index 0000000..1cc6d2a --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Database/DBConnector.py @@ -0,0 +1,135 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from IPy import IP + +import psycopg2 + +class DBConnector(object): + def __init__(self, host = "127.0.0.1", port = 5432, + db = "dump", user = "user", pwd = "pwd"): + self.host = host + self.port = port + self.db = db + self.user = user + self.pwd = pwd + + @property + def port(self): + return self.__port + + @port.setter + def port(self, port): + """ + Method to check whether the port is in the valid port range of 1-65535, + if not it raises a ValueError + @type port: int + @param port: Port on which the PostgreSQL database is + listening + """ + if port in range(1, 65535): + self.__port = port + else: + raise ValueError("Port must be in range of 1 to 65535") + + @property + def host(self): + return self.__host + + @host.setter + def host(self, host): + """ + Method to check whether the given host name is a valid IP address. If + not the IP address is set to localhost (127.0.0.1). + @type host: str + @param port: IP on which the PostgreSQL database is + reachable + """ + try: + IP(host) + self.__host = host + except ValueError: + print "Invalid IP address, setting host to 127.0.0.1" + self.__host = "127.0.0.1" + + def __str__(self): + return ("Connected to DB " + self.db + " on " + self.host + + ":" + str(self.port) + " as " + self.user) + + def connect(self): + """ + Method to connect to a PostgreSQL + @type Connection: connection + @param Connection: The connection to the PostgreSQL database + created by 'psycopg2.connect()' + @type Statement: string + @param Statement: String describing the select statement, + e.g. 'SELECT * from table;' + """ + try: + connection = psycopg2.connect("dbname='" + self.db + "' user='" + + self.user + "' host='" + self.host + + "' password='" + self.pwd + "'") + return connection + except psycopg2.Error, msg: + print "Error: ", msg + + def executeSelect(self, connection, statement): + """ + Method that executes a select statement on a PosgreSQL database. + @type connection: connection + @param connection: The connection to the PostgreSQL database + created by 'psycopg2.connect()' + @type statement: str + @param statement: String describing the select statement, + e.g. 'SELECT * from table;' + """ + st = connection.cursor() + rows = [] + try: + st.execute(statement) + rows = st.fetchall() + except Exception: + print "Statement '" + statement + "' can not be executed" + st.close() + return rows + + def executeUpdate(self, connection, statement): + """ + Method that executes an update statement on a PosgreSQL database. + @type connection: connection + @param connection: The connection to the PostgreSQL database + created by 'psycopg2.connect()' + @type statement: str + @param statement: String describing the update statement, + e.g. 'DELETE FROM table WHERE x=3;' + """ + st = connection.cursor() + try: + st.execute(statement) + connection.commit() + except Exception: + print "Statement '" + statement + "' can not be executed" + st.close() + + def disconnect(self, connection): + """ + Method to close a given connection + @type connection: connection + @param connection: A connection to a PostgreSQL that should + be closed database (created by + 'psycopg2.connect()') + """ + connection.close() diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/Database/__init__.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Database/__init__.py new file mode 100644 index 0000000..1523109 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/Database/__init__.py @@ -0,0 +1,24 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +import DBConnector + +def main(): + db = DBConnector.DBConnector() + db.ConnectionInfo() + + +if __name__ == "__main__": + main()
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTracking/PacketTracking.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTracking/PacketTracking.py new file mode 100644 index 0000000..2f1073e --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTracking/PacketTracking.py @@ -0,0 +1,18 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +class PacketTracking(object): + def __init__(self): + pass diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTracking/__init__.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTracking/__init__.py new file mode 100644 index 0000000..92936f3 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTracking/__init__.py @@ -0,0 +1,15 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTrackingGui/PacketTrackingGUI.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTrackingGui/PacketTrackingGUI.py new file mode 100644 index 0000000..b17533d --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTrackingGui/PacketTrackingGUI.py @@ -0,0 +1,18 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +class PacketTrackingGUI(object): + def __init__(self): + pass diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTrackingGui/__init__.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTrackingGui/__init__.py new file mode 100644 index 0000000..92936f3 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/PacketTrackingGui/__init__.py @@ -0,0 +1,15 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/PassiveMonitoring.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/PassiveMonitoring.py new file mode 100644 index 0000000..0018788 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/PassiveMonitoring.py @@ -0,0 +1,268 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from Task.Passive.Monitoring.Aggregator import Aggregator + +class PassiveMonitoring(object): + + def __init__(self): + self.__Aggregator = Aggregator() + + + # PT Actions + # 1. + def getPtVolumeStats(self, startTime, stopTime, nodeList): + """ + Function to retrieve the observed traffic in the time intervall defined + between startTime and stopTime. Traffic means, packet/byte count for + each node in the list. + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param stopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type nodeList: list + @param nodeList: List of nodes, whereby a node is one installed + monitoring probe. + @rtype: PtVolumeStats (list) + @return: (At least) number of packets and bytes observed by + a node. + """ + return self.__Aggregator.getPtVolumeStats(startTime, stopTime, nodeList) + + # 2. + def getPtHopStats(self, startTime, stopTime, nodeList2D): + """ + Function to retrieve the observed traffic statistics in the time + intervall defined between startTime and stopTime. Statistics mean + packet/byte count and min/max/avg delay between each adjacent node/node + pair. + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type StopTime: struct_time + @param StopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type nodeList2D: list + @param nodeList2D: A List of <first, second> Node pairs. + @rtype: PtHopStats (list) + @return: Packet tracking Hop statistics, i.e. delay/volume + statistics between two neighbor PT probes + """ + return self.__Aggregator.getPtHopStats(startTime, stopTime, nodeList2D) + + # 3. + def getPtPathStats(self, startTime, stopTime, nodeTuple): + """ + Function to retrieve the observed traffic statistics in the time + intervall defined between StartTime and StopTime. Statistics mean + packet/byte count and min/max/avg delay between each node/node pair. + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param stopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type nodeTuple: tuple + @param nodeTuple: A pair of nodes represented as a 'tuple' datatype + @rtype: PtPathStats (list) + @return: Packet tracking Hop statistics, i.e. delay/volume + statistics between any two PT probes + """ + return self.__Aggregator.getPtPathStats(startTime, stopTime, nodeTuple) + + # 4. + def getPtActivity(self, startTime, stopTime, nodeList): + """ + Returns the 'activity' for each node in the list. Activity is defined + as a percentage [0-100%] of interval startTime to stopTime . If no + packet is observed in this defined time interval the function returns + zero, otherwise the function returns a positive non-zero value. It also + depends on the configured activity threshold (timeout), which is set by + the function 'setPtActivityThreshold'. + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param stopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type nodeList: list + @param nodeList: List of nodes, whereby a node is one installed + monitoring probe. + @rtype: PtActivity + @return: Amount of time when there was live traffic + observed at a node. + """ + return self.__Aggregator.getPtActivity(startTime, stopTime, nodeList) + + # Pt Management (Impd4e + Collector) + # 1. + def restartPtCollector(self): + """ + Method to restart the Collector. + @rtype: Status + @return: Placeholder for return error handling, i.e. + "Success" or specific Exception. + """ + return self.__Aggregator.restartPtCollector() + + # 2. + def restartPtProbes(self, nodeList): + """ + Method to restart the probes on all the selected Nodes. + @rtype: Status + @return: Placeholder for return error handling, i.e. + "Success" or specific Exception. + """ + return self.__Aggregator.restartPtProbes(nodeList) + + # 3. + def purgePtDatabase(self, startTime, stopTime): + """ + Function to purge the observed track information from the database + (Only for administrative purposes). + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param stopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @rtype: Status + @return: Placeholder for return error handling, i.e. + "Success" or specific Exception. + """ + return self.__Aggregator.purgePtDatabase(startTime, stopTime) + + # 4. + def setPtHashRange(self, range): + """ + Sets the hash range for the hashing algorithm, value must be between 1 + and 100. The higher, the more packets are selected by the hashing + function. 100 - Means, all packets are selected. + @type range: int + @param range: A value between 1 and 100. + @rtype: Status + @return: Placeholder for return error handling, i.e. + "Success" or specific Exception. + """ + return self.__Aggregator.setPtHashRange(range) + + # 5. + def setPtHashFunction(self, hashFunction): + """ + The PT probe provides different hashing functions to do the packet + selection. Possible parameters are: "BOB", "OAAT", "TWMX", "HSIEH + @type hashFunction: str + @param hashFunction: A short string representing the hashing function. + @rtype: Status + @return: Placeholder for return error handling, i.e. + "Success" or specific Exception. + """ + return self.__Aggregator.setPtHashFunction(hashFunction) + + # 6. + def setPtActivityThreshold(self, timeMSec): + """ + Function to adjust the activity threshold. Increasing this value in + effect reduces the probability to receive a "0 - no activity" from the + function 'getPtActivity'. + @type timeMSec: int + @param timeMSec: A time value in milliseconds. + @rtype: Status + @return: Placeholder for return error handling, i.e. + "Success" or specific Exception. + """ + return self.__Aggregator.setPtActivityThreshold(timeMSec) + + # PT Visualization (Netview) + # 1. + def viewPtPathTracks(self, startTime, stopTime, nodeList): + """ + Starts a GUI application and displays the path defined by the nodeList, + in the time interval, defined by startTime and stopTime. + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param stopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type nodeList: list + @param nodeList: List of nodes, whereby a node is one installed + monitoring probe. + @rtype: Status + @return: Placeholder for return error handling, i.e. + "Success" or specific Exception. + """ + return self.__Aggregator.viewPtPathTracks(startTime, stopTime, nodeList) + + # 2. + def viewPtHopTracks(self, startTime, stopTime, nodeList2D): + """ + Starts a GUI application and displays the hop defined by the node + vector, in the time interval, defined by startTime and stopTime. + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param StopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type nodeList2D: list + @param nodeList2D: A List of node tuples (src, dst). + @rtype: Status + @return: Placeholder for return error handling, i.e. + "Success" or specific Exception. + """ + return self.__Aggregator.viewPtHopTracks(startTime, stopTime, nodeList2D) + + # 3. + def plotPtPathStats(self, startTime, stopTime, nodeList): + """ + Plots the delay stats in a X/Y-plot for a hop between two nodes given + by the nodeList, in the time interval defined by startTime and stopTime. + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param stopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type nodeList: list + @param nodeList: List of nodes, whereby a node is one installed + monitoring probe. + @rtype: Status + @return: Placeholder for return error handling, i.e. + "Success" or specific Exception. + """ + return self.__Aggregator.plotPtPathStats(startTime, stopTime, nodeList) + + # 4. + def plotPtHopStats(self, startTime, stopTime, nodeList2D): + """ + Plots the delay stats in a X/Y-plot for a path between multiple nodes + given by the nodeList, in the time interval defined by startTime and + stopTime. + @type startTime: struct_time + @param startTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type stopTime: struct_time + @param stopTime: A sequence of 9 integers, as returned from + gmtime(), localtime() or strptime(). + @type nodeList2D: list + @param nodeList2D: A List of <first, second> Node pairs. + @rtype: Status + @return: Placeholder for return error handling, i.e. + "Success" or specific Exception. + """ + return self.__Aggregator.plotPtHopStats(startTime, stopTime, nodeList2D)
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/SliceManager/SliceManager.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/SliceManager/SliceManager.py new file mode 100644 index 0000000..190c652 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/SliceManager/SliceManager.py @@ -0,0 +1,70 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from Task.Passive.Monitoring.Database.DBConnector import DBConnector + +class SliceManager(DBConnector): + def __init__(self, host = "127.0.0.1", port = 5432, + db = "dump", user = "user", pwd = "pwd"): + """ + Constructor of the silce manager. + @type host: String + @param host: host where the database is running on + (default: '127.0.0.1'). Give an IP address, + because the DBConnector is validating it. + @type port: int + @param port: Port number the PostgreSQL database is listening + on (default: 5432). Must be in range of 1-65535. + @type db: String + @param db: Name of the database (default: 'dump'). + @type user: String + @param user Username (default: 'user'). + @type pwd: String + @param pwd: Password for user (default: 'pwd'). + """ + DBConnector.__init__(self, host, port, db, user, pwd) + + def validateNode(self, node): + connection = self.connect() + statement = ("SELECT oid FROM slice WHERE oid = " + str(node.oid) + ";") + rows = self.executeSelect(connection, statement) + self.disconnect(connection) + return False if len(rows) == 0 else True + + def updateHashRange(self, range): + connection = self.connect() + statement = ("UPDATE slice SET hashrange = " + str(range) + ";") + self.executeUpdate(connection, statement) + self.disconnect(connection) + + def updateHashFunction(self, function): + connection = self.connect() + statement = ("UPDATE slice SET algorithm = '" + function + "';") + self.executeUpdate(connection, statement) + self.disconnect(connection) + + def selectActivityThreshold(self, nodeOid): + connection = self.connect() + statement = ("SELECT activity FROM slice WHERE oid = " + + str(nodeOid) + ";") + rows = self.executeSelect(connection, statement) + self.disconnect(connection) + return rows[0][0] + + def updateActivityThreshold(self, timeMSec): + connection = self.connect() + statement = ("UPDATE slice SET activity = " + str(timeMSec) + ";") + self.executeUpdate(connection, statement) + self.disconnect(connection)
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/SliceManager/__init__.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/SliceManager/__init__.py new file mode 100644 index 0000000..92936f3 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/SliceManager/__init__.py @@ -0,0 +1,15 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/__init__.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/__init__.py new file mode 100644 index 0000000..a9faf1b --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/__init__.py @@ -0,0 +1,20 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + + + +if __name__ == "__main__": + import doctest + doctest.testmod()
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/Monitoring/test.py b/Monitoring/MonitoringTool/PacketTracking/Monitoring/test.py new file mode 100644 index 0000000..7c5e087 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/Monitoring/test.py @@ -0,0 +1,101 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +import unittest + +from PassiveMonitoring import PassiveMonitoring + +class Test(unittest.TestCase): + + def setUp(self): + self.pM = PassiveMonitoring() + self.nodeList = [1,2,3,4,5,42,46] + self.hashFunctions = ["BOB", "OAAT", "TWMX", "HSIEH"] + + def testGetPtVolumeStats(self): + ret = self.pM.getPtVolumeStats("2010-10-10T10:10:10", + "2012-10-10T10:10:10", + self.nodeList) + for r in ret: + print r + + def testGetPtHopStats(self): + ret = self.pM.getPtHopStats("2010-10-10T10:10:10", + "2012-10-10T10:10:10", + [(1,2), (3,46), (5,42)]) + for r in ret: + print r + + def testGetPtPathStats(self): + ret = self.pM.getPtPathStats("2010-10-10T10:10:10", + "2012-10-10T10:10:10", + (46,42)) + for r in ret: + print r + + def testGetPtActivity(self): + ret = self.pM.getPtActivity("2010-10-10T10:10:10", + "2012-10-10T10:10:10", + self.nodeList) + for r in ret: + print r + + def testRestartPtCollector(self): + pass + + def testRestartPtProbes(self): + pass + + def testPurgePtDatabase(self): + pass + + def testSetPtHashRange(self): + ret = 0 + for i in range(1,100): + ret += self.pM.setPtHashRange(i).status + print "setPtHashRange " + str(ret) + + def testSetPtHashFunction(self): + ret = 0 + for function in self.hashFunctions: + ret += self.pM.setPtHashFunction(function).status + print "setPtHashFunction " + str(ret) + + def testSetPtActivityThreshold(self): + ret = self.pM.setPtActivityThreshold(100).status + print "setPtActivityThreshold " + str(ret) + + def testViewPtPathTracks(self): + self.pM.viewPtPathTracks("2010-10-10T10:10:10", + "2012-10-10T10:10:10", + self.nodeList) + + def testViewPtHopTracks(self): + self.pM.viewPtHopTracks("2010-10-10T10:10:10", + "2012-10-10T10:10:10", + [(1,2), (3,46), (5,42)]) + + def testPlotPtPathStats(self): + self.pM.plotPtPathStats("2010-10-10T10:10:10", + "2012-10-10T10:10:10", + self.nodeList) + + def testPlotPtHopStats(self): + self.pM.plotPtHopStats("2010-10-10T10:10:10", + "2012-10-10T10:10:10", + [(1,2), (3,46), (5,42)]) + +if __name__ == "__main__": + unittest.main()
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/PtShell/CommandLine.py b/Monitoring/MonitoringTool/PacketTracking/PtShell/CommandLine.py new file mode 100644 index 0000000..a727ff9 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/PtShell/CommandLine.py @@ -0,0 +1,89 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +from sys import exit, stdout +from os import system +from inspect import getargspec, getmembers +import readline + +from Task.Passive.Monitoring.DataTypes import Node +from Task.Passive.Monitoring.PassiveMonitoring import PassiveMonitoring +from Return import Return + +class CommandLine(object): + def __init__(self): + self.Options = {"clear" : self.__clear, + "exit" : self.__exit, + "help" : self.__help} + + def __Helptext(self): + return ("\n" + " 888888ba d888888P .d88888b dP dP dP\n" + " 88 `8b 88 88. \"' 88 88 88\n" + "a88aaaa8P' 88 `Y88888b. 88d888b. .d8888b. 88 88\n" + " 88 88 `8b 88' `88 88ooood8 88 88\n" + " 88 88 d8' .8P 88 88 88. ... 88 88\n" + " dP dP Y88888P dP dP `88888P' dP dP\n" + "oooooooooooooooooooooooooooooooooooooooooooooooooooooo\n" + "\n" + "Type 'help' for a list of commands\n" + "") + + def Input(self): + PM = PassiveMonitoring() + + print self.__Helptext() + while(1): + try: + Input = raw_input("-->") + except EOFError: + self.__exit() + try: + self.Options[Input]() + except KeyError: + try: + Return(eval("PM." + Input)) + except TypeError, m: + print "Error: " + str(m) + except (NameError, SyntaxError, AttributeError): + try: + exec(Input) + except Exception: + print ("Unknown function, type 'help' to get the list " + "of functions:") + + def __clear(self): + system("clear") + print self.__Helptext() + + def __exit(self): + print "" + exit(0) + + + def __help(self): + list = getmembers(PassiveMonitoring) + print("cmds:") + for funcName in list: + if funcName[0][0:1] != "_": + function = getattr(PassiveMonitoring, str(funcName[0])) + argSpec = getargspec(function) + print " " + funcName[0] + "(", + for i in range(len(argSpec.args)): + if argSpec.args[i] != "self": + stdout.write(argSpec.args[i]) + if i != len(argSpec.args)-1: + stdout.write(", ") + stdout.write(")\n")
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/PtShell/Return.py b/Monitoring/MonitoringTool/PacketTracking/PtShell/Return.py new file mode 100644 index 0000000..0a172b8 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/PtShell/Return.py @@ -0,0 +1,24 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +class Return(object): + def __init__(self, ret): + if type(ret).__name__ == "list": + for r in ret: + print r + elif type(ret).__name__ == "Status": + print ret + else: + print ret
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/PtShell/__init__.py b/Monitoring/MonitoringTool/PacketTracking/PtShell/__init__.py new file mode 100644 index 0000000..d45d1bf --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/PtShell/__init__.py @@ -0,0 +1,31 @@ +""" +Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +Copyright according to BSD License +For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt + +@author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +@author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +@author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +@author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +@author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +@author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +@author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +@author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +""" + +import sys + +sys.path.append("../../..") + +import CommandLine +import Return + +def main(): + c = CommandLine.CommandLine() + try: + c.Input() + except KeyboardInterrupt: + print "" + +if __name__ == "__main__": + main()
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/PtShell/ptshell.sh b/Monitoring/MonitoringTool/PacketTracking/PtShell/ptshell.sh new file mode 100644 index 0000000..78748e3 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/PtShell/ptshell.sh @@ -0,0 +1,2 @@ +#!/bin/sh +python __init__.py diff --git a/Monitoring/MonitoringTool/PacketTracking/addLicense.sh b/Monitoring/MonitoringTool/PacketTracking/addLicense.sh new file mode 100644 index 0000000..8174e92 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/addLicense.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +LICENSE_FILE= +attach_license() #file list +{ + for file in $*; do + echo "attach [$LICENSE_FILE] to [$file]" + if [ "$file" = "$LICENSE_FILE" ]; then + echo "[skip] source equals target" + else + if [ ${!SIMULATE_EXECUTION[@]} ]; then + echo "this is a simulation" + else + cat $LICENSE_FILE $file > tmp.attach + mv tmp.attach $file + fi + fi + done + exit 0 +} + +helper() +{ + echo -e "usage: $0 [options] files... " + echo -e " Options:" + echo -e "\t-l <text file> file to attach to files-list" + echo -e "\t-s simulate execution (must be first argument)" + echo -e "\t-h, --help this help" + exit 1 +} + + +if [ $# -eq 0 ]; then + helper +fi + +# parameter parsing +while [ $# -gt 0 ]; do + case $1 in + "-l") + # read configuration file + shift #shift parameter + LICENSE_FILE=$1 + shift #file list + attach_license $* + ;; + "-s") + SIMULATE_EXECUTION= + ;; + "--help"|"-h"|*) + helper + ;; + esac + shift +done diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/.gitignore b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/.gitignore new file mode 100644 index 0000000..dc1468d --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/.gitignore @@ -0,0 +1,9 @@ +.svn +*.log +.m2classpath +.classpath +.project +.settings/* +target/* +bin/* +logs/* diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/.gitignore b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/.gitignore new file mode 100644 index 0000000..a351a86 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/.gitignore @@ -0,0 +1,8 @@ +.svn +*.log +.classpath +.project +.settings/* +target/* +bin/* +logs/* diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/pom.xml b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/pom.xml new file mode 100644 index 0000000..1b978b3 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/pom.xml @@ -0,0 +1,54 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>de.fhg.fokus.net</groupId> + <artifactId>ipfix-api</artifactId> + <name>Java IPFIX API</name> + <version>0.9-SNAPSHOT</version> + <description>Java IPFIX API. + </description> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + <distributionManagement> + <repository> + <id>pt</id> + <url>${pt.releases.repo.url}</url> + </repository> + <snapshotRepository> + <id>pt</id> + <url>${pt.snapshots.repo.url}</url> + </snapshotRepository> + <site> + <id>pt-site</id> + <url>${pt.sites.deploy.url}</url> + </site> + </distributionManagement> + + <dependencies> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>1.5.6</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.7</version> + <scope>test</scope> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.6</source> + <target>1.6</target> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/Ipfix.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/Ipfix.java new file mode 100644 index 0000000..b39faa4 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/Ipfix.java @@ -0,0 +1,27 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +/** + * + * @author FhG-FOKUS NETwork Research + */ +public class Ipfix { + public final static short VERSION = 0x000a; + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixCollectorListener.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixCollectorListener.java new file mode 100644 index 0000000..e5393bd --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixCollectorListener.java @@ -0,0 +1,31 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + + +/** + * IPFIX Message Listener + * + * @author FhG-FOKUS NETwork Research + * + */ +public interface IpfixCollectorListener { + public void onConnect( IpfixConnectionHandler handler ); + public void onDisconnect( IpfixConnectionHandler handler ); + public void onMessage( IpfixConnectionHandler handler, IpfixMessage msg ); +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixConnectionHandler.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixConnectionHandler.java new file mode 100644 index 0000000..e2c754d --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixConnectionHandler.java @@ -0,0 +1,35 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.net.Socket; + +/** + * IPFIX Handler + * + * @author FhG-FOKUS NETwork Research + * + */ +public interface IpfixConnectionHandler { + public boolean isConnected(); + public Socket getSocket(); + public Object getAttachment(); + public void setAttachment(Object obj); + public long totalReceivedMessages(); + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDataRecordReader.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDataRecordReader.java new file mode 100644 index 0000000..33ba396 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDataRecordReader.java @@ -0,0 +1,37 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public interface IpfixDataRecordReader { + /** + * Reads the next ipfix record and updates setBuffer position accordingly. + * + * @param setBuffer + * @return ipfix record or null if record could not be read. + */ + public Object getRecord( IpfixMessage msg, ByteBuffer setBuffer ); + public IpfixTemplateForDataReader getTemplate(); + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDataRecordSpecifier.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDataRecordSpecifier.java new file mode 100644 index 0000000..99d2373 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDataRecordSpecifier.java @@ -0,0 +1,31 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; +/** + * <p> Can be an {@link IpfixOptionsTemplateRecord} or + * an {@link IpfixTemplateRecord }. </p> + * + * @author FhG-FOKUS NETwork Research + * + */ +public interface IpfixDataRecordSpecifier { + + public int getTemplateId(); + public int getDataRecordLength(); + public boolean isVariableLength(); +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDefaultDataRecord.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDefaultDataRecord.java new file mode 100644 index 0000000..3c3e4a7 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDefaultDataRecord.java @@ -0,0 +1,50 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; + +import de.fhg.fokus.net.ipfix.util.HexDump; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixDefaultDataRecord { + private final ByteBuffer byteBuffer; + /** + * Slice the set buffer from the current position len bytes long. + * + * @param setBuffer Origin byte buffer. + * @param len Size of record in octets. + */ + public IpfixDefaultDataRecord(ByteBuffer setBuffer, int len ) { + this.byteBuffer = setBuffer.slice(); + this.byteBuffer.limit(len); + setBuffer.position(setBuffer.position()+len ); + } + @Override + public String toString() { + byte [] bb = new byte[byteBuffer.remaining()]; + byteBuffer.get(bb); + String hexdump = HexDump.toHexString( bb, byteBuffer.limit()*2 ); + return String.format("drec:{ len:%d hex: %s }", byteBuffer.limit(),hexdump); + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDefaultTemplateManager.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDefaultTemplateManager.java new file mode 100644 index 0000000..cc51f7c --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixDefaultTemplateManager.java @@ -0,0 +1,116 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * IPFIX Template Manager + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixDefaultTemplateManager implements IpfixTemplateManager { + // -- sys -- + protected final Logger logger = LoggerFactory.getLogger(getClass()); + protected final Statistics stats = new Statistics(); + // -- management -- + private final Map<String, IpfixIe> mapFieldIe = new ConcurrentHashMap<String, IpfixIe>(); + private final Map<Integer, IpfixDataRecordReader> mapSetIdRecordReader = new ConcurrentHashMap<Integer, IpfixDataRecordReader>(); + private final Map<String, IpfixDataRecordReader> mapTemplateUidRecordReader = new ConcurrentHashMap<String, IpfixDataRecordReader>(); + private final Map<Integer, IpfixDataRecordSpecifier> mapSetId2DataRecordSpecifier = new ConcurrentHashMap<Integer, IpfixDataRecordSpecifier>(); + + // TODO unify this + @Override + public void registerOptionsTemplateRecord( + IpfixOptionsTemplateRecord ipfixOptionsTemplateRecord) { + stats.numberOfOptionTemplateRecords++; + int setId = ipfixOptionsTemplateRecord.getTemplateId(); + IpfixDataRecordReader reader = mapTemplateUidRecordReader + .get(ipfixOptionsTemplateRecord.getUid()); + mapSetId2DataRecordSpecifier.put(setId, ipfixOptionsTemplateRecord); + if (reader == null) { + logger.debug( + "No IPFIX (options) data record reader was found for {}.", + ipfixOptionsTemplateRecord.getUid()); + return; + } + logger.debug( + "registering ipfix options template record: {}, reader:{}", + ipfixOptionsTemplateRecord, reader); + mapSetIdRecordReader.put(setId, reader); + } + + @Override + public IpfixDataRecordSpecifier getDataRecordSpecifier(int setId) { + return mapSetId2DataRecordSpecifier.get(setId); + } + + @Override + public IpfixDataRecordReader getDataRecordReader(int setId) { + IpfixDataRecordReader reader = mapSetIdRecordReader.get(setId); + // logger.debug("Getting data record reader:{} setId:{}",reader,setId); + return reader; + } + + @Override + public IpfixIe getInformationElement(IpfixFieldSpecifier fieldSpecifier) { + return mapFieldIe.get(fieldSpecifier.toString()); + } + + @Override + public Statistics getStatistics() { + return stats; + } + + @Override + public void registerDataRecordReader(IpfixDataRecordReader reader) { + logger.debug("registering data record reader: {}", reader.getTemplate() + .getUid()); + for (IpfixIe ie : reader.getTemplate().getInformationElements()) { + logger.debug(" +-registering ie: {}, {}", ie.getName(), ie + .getFieldSpecifier()); + mapFieldIe.put(ie.getFieldSpecifier().toString(), ie); + } + mapTemplateUidRecordReader.put(reader.getTemplate().getUid(), reader); + + } + + @Override + public void registerTemplateRecord(IpfixTemplateRecord ipfixTemplateRecord) { + stats.numberOfTemplateRecords++; + IpfixDataRecordReader reader = mapTemplateUidRecordReader + .get(ipfixTemplateRecord.getUid()); + int setId = ipfixTemplateRecord.getTemplateId(); + mapSetId2DataRecordSpecifier.put(setId, ipfixTemplateRecord); + if (reader == null) { + logger.debug("No IPFIX data record reader was found for {}.", + ipfixTemplateRecord.getUid()); + return; + } + logger.debug("registering ipfix template record: {}, reader:{}", + ipfixTemplateRecord, reader); + mapSetIdRecordReader.put(setId, reader); + + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixEnterpriseNumbers.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixEnterpriseNumbers.java new file mode 100644 index 0000000..7ffa0b1 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixEnterpriseNumbers.java @@ -0,0 +1,79 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +/** + * TODO auto generate from + * http://www.iana.org/assignments/enterprise-numbers + + * + * @author FhG-FOKUS NETwork Research + * + */ +public enum IpfixEnterpriseNumbers { + /** + * <pre> + * { Decimal:12325, + * Organization:"Fraunhofer FOKUS", + * Contact:"Hartmut Brandt", + * Email:"brandt&fokus.gmd.de" } + * </pre> + */ + FRAUNHOFER_FOKUS(12325, "Fraunhofer FOKUS", "Hartmut Brandt", + "brandt&fokus.gmd.de"), + /** + * <pre> + * { Decimal:29305, + * Organization:"IPFIX Reverse Information Element Private Enterprise", + * Contact:"RFC5103 Authors", + * Email:"ipfix-biflow&cert.org" } + * </pre> + */ + IPFIX_REVERSE_INFORMATION_ELEMENT_PRIVATE_ENTERPRISE(29305, + "IPFIX Reverse Information Element Private Enterprise", + "RFC5103 Authors", "ipfix-biflow&cert.org"); + private final int decimal; + private final String organization; + private final String contact; + private final String email; + + private IpfixEnterpriseNumbers(int decimal, String organization, + String contact, String email) { + this.decimal = decimal; + this.organization = organization; + this.contact = contact; + this.email = email; + } + + public int getDecimal() { + return decimal; + } + + public String getOrganization() { + return organization; + } + + public String getContact() { + return contact; + } + + public String getEmail() { + return email; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixFieldSpecifier.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixFieldSpecifier.java new file mode 100644 index 0000000..ee7f258 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixFieldSpecifier.java @@ -0,0 +1,234 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + + package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * <pre> + * + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * |E| Information Element ident. | Field Length | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Enterprise Number | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * + * </pre> + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixFieldSpecifier implements Comparable<IpfixFieldSpecifier> { + // -- sys -- + private final static Logger logger = LoggerFactory + .getLogger(IpfixFieldSpecifier.class); + // -- constants -- + private static final int IDX_E_ID = 0; + private static final int IDX_FIELD_LENGTH = 2; + private static final int IDX_ENTERPRISE_NUMBER = 4; + private static final int LENGTH_IN_OCTETS = 4; + private static final int LENGTH_ENTERPRISE_IN_OCTETS = 8; + private static final int RFC_NON_ENTERPRISE=0; + // -- model -- + private final ByteBuffer bytebuffer; + private IpfixIe informationElement; + private boolean isScope = false; + + @Override + public String toString() { + if (informationElement != null) { + return String.format("%s", informationElement.getName()); + } + return getUid(); + } + + public String getUid() { + String scope = this.isScope?", scope:true":""; + return String.format("{id:%d, len:%d, en:%d%s}", getId(), + getIeLength(), getEnterpriseNumber(), scope); + } + /** + * Interpret next bytes as an ipfix field specifier. The record buffer position + * is incremented accordingly. + * + * @param recordBuffer + */ + public IpfixFieldSpecifier(ByteBuffer recordBuffer) { + this.bytebuffer = recordBuffer.slice(); + if (isEnterprise()) { + recordBuffer.position(recordBuffer.position() + + LENGTH_ENTERPRISE_IN_OCTETS); + this.bytebuffer.limit(LENGTH_ENTERPRISE_IN_OCTETS); + } else { + recordBuffer.position(recordBuffer.position() + LENGTH_IN_OCTETS); + this.bytebuffer.limit(LENGTH_IN_OCTETS); + } + } + /** + * Creates an IETF information element. + */ + public IpfixFieldSpecifier() { + this(RFC_NON_ENTERPRISE); + } + /** + * Creates an IETF or Enterprise information element. + * + * @param isEnterprise + */ + public IpfixFieldSpecifier(long enterpriseNumber) { + + if (enterpriseNumber!=0) { + this.bytebuffer = ByteBuffer.allocate(LENGTH_ENTERPRISE_IN_OCTETS); + setEnterpriseNumber(enterpriseNumber); + } else { + this.bytebuffer = ByteBuffer.allocate(LENGTH_IN_OCTETS); + } + } + + public short getId() { + return (short) (0x7FFF & bytebuffer.getShort(IDX_E_ID)); + } + + public IpfixFieldSpecifier setId(int id) { + bytebuffer.putShort(IDX_E_ID, + (short) (id | (bytebuffer.getShort(IDX_E_ID) & 0x8000))); + return this; + } + + public long getEnterpriseNumber() { + if (isEnterprise() && bytebuffer.limit() >= LENGTH_ENTERPRISE_IN_OCTETS) { + return ByteBufferUtil.getUnsignedInt(bytebuffer, + IDX_ENTERPRISE_NUMBER); + } else { + return 0; + } + } + + /** + * Set enterprise number. Enterprise bit is also set if en != 0. + * + * @param en + * @return itself + */ + public IpfixFieldSpecifier setEnterpriseNumber(long en) { + if (bytebuffer.limit() >= LENGTH_ENTERPRISE_IN_OCTETS) { + ByteBufferUtil.putUnsignedInt(bytebuffer, IDX_ENTERPRISE_NUMBER , en); + setEnterprise(en != 0); + } else { + logger + .warn("Trying to set enterprise number on a too small field specifier buffer."); + } + return this; + } + + /** + * <p> The length of the corresponding encoded Information Element, in octets. + * Refer to [RFC5102]. The field length may be smaller than the definition + * in [RFC5102] if the reduced size encoding is used (see Section 6.2). The + * value 65535 is reserved for variable- length Information Elements (see + * Section 7).</p> + * + * @return length in octets + */ + public int getIeLength() { + return ByteBufferUtil.getUnsignedShort(bytebuffer, IDX_FIELD_LENGTH); + } + + /** + * + * @return Length in octets required to store this field specifier, i.e. 4 + * (standard) or 8 (enterprise) octets. + */ + public int getFieldSpecifierLength() { + return isEnterprise() ? LENGTH_ENTERPRISE_IN_OCTETS : LENGTH_IN_OCTETS; + } + + public IpfixFieldSpecifier setFieldLength(int fieldLength) { + ByteBufferUtil + .putUnsignedShort(bytebuffer, IDX_FIELD_LENGTH, fieldLength); + return this; + } + + public boolean isEnterprise() { + return (bytebuffer.getShort(IDX_E_ID) & 0x8000) > 0; + } + + public IpfixFieldSpecifier setEnterprise(boolean isEnterprise) { + if (isEnterprise) { + bytebuffer.putShort(IDX_E_ID, (short) (bytebuffer.getShort(IDX_E_ID) | 0x8000)); + } else { + bytebuffer.putShort(IDX_E_ID, (short) (bytebuffer.getShort(IDX_E_ID) & 0x7FFF)); + } + return this; + } + + /** + * Get underlying byte buffer + * + * @return + */ + public ByteBuffer getBytebuffer() { + return bytebuffer; + } + + @Override + public int hashCode() { + return bytebuffer.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof IpfixFieldSpecifier) { + IpfixFieldSpecifier that = (IpfixFieldSpecifier) obj; + return bytebuffer.equals(that.getBytebuffer()); + } else { + return false; + } + } + + @Override + public int compareTo(IpfixFieldSpecifier that) { + return bytebuffer.compareTo(that.getBytebuffer()); + } + + public IpfixIe getInformationElement() { + return informationElement; + } + + public void setInformationElement(IpfixIe informationElement) { + this.informationElement = informationElement; + } + + public boolean isScope() { + return isScope; + } + + public IpfixFieldSpecifier setScope(boolean isScope) { + this.isScope = isScope; + return this; + } + + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixHeader.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixHeader.java new file mode 100644 index 0000000..ba988ee --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixHeader.java @@ -0,0 +1,96 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; + +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * + * + * <pre> + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Version Number | Length | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Export Time | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Sequence Number | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Observation Domain ID | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * </pre> + * + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixHeader { + // private final static Logger logger = + // LoggerFactory.getLogger(IpfixHeader.class); + // -- constants -- + public static final int IDX_VERSION = 0; + public static final int IDX_LENGTH = 2; + public static final int IDX_EXPORT_TIME = 4; + public static final int IDX_SEQUENCE_NUMBER = 8; + public static final int IDX_OBSERVATION_DOMAIN_ID = 12; + + /** + * IPFIX header size in octets + */ + public static final int SIZE_IN_OCTETS = 16; + + public static int getVersion(ByteBuffer byteBuffer ) { + return ByteBufferUtil.getUnsignedShort(byteBuffer, IDX_VERSION); + } + /** + * Get IPFIX message length from position, buffer state won't be changed. + * + * @param byteBuffer + * @param pos + * @return ipfix message length from reference message starting position + */ + public static int getLength(ByteBuffer byteBuffer, int pos ) { + return ByteBufferUtil.getUnsignedShort(byteBuffer, pos+IDX_LENGTH); + } + + public static int getLength(ByteBuffer byteBuffer ) { + return ByteBufferUtil.getUnsignedShort(byteBuffer, IDX_LENGTH); + } + + public static long getExportTime(ByteBuffer byteBuffer) { + return ByteBufferUtil.getUnsignedInt(byteBuffer, IDX_EXPORT_TIME); + + } + public static long getSequenceNumber(ByteBuffer byteBuffer) { + return ByteBufferUtil.getUnsignedInt(byteBuffer, IDX_SEQUENCE_NUMBER); + + } + public static long getObservationDomainID(ByteBuffer byteBuffer) { + return ByteBufferUtil.getUnsignedInt(byteBuffer, + IDX_OBSERVATION_DOMAIN_ID); + } + public static String toString( ByteBuffer byteBuffer ) { + return String.format("hdr:{v:%d, len:%d, et:%d, sn:%d, oid:%d}", + getVersion(byteBuffer), getLength(byteBuffer), getExportTime(byteBuffer), + getSequenceNumber(byteBuffer), getObservationDomainID(byteBuffer)); + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIe.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIe.java new file mode 100644 index 0000000..4adb08b --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIe.java @@ -0,0 +1,48 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public interface IpfixIe { + /** + * Value reserved for variable-length Information Elements. + */ + public int VARIABLE_LENGTH = 65535; + public String getName(); + public IpfixIeDataTypes getDataType(); + public IpfixIeSemantics getSemantics(); + public IpfixIeStatus getStatus(); + public IpfixIeUnits getUnits(); + public IpfixFieldSpecifier getFieldSpecifier(); + + /** + * Number of octets used for encoding this IPFIX IE. + * @return length or {@link IpfixIe#VARIABLE_LENGTH} + */ + public int getLength(); + + public static class Util{ + public static String toString(IpfixIe ie) { + return String.format("%s:%d", ie.getName(),ie.getLength()); + } + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeCodec.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeCodec.java new file mode 100644 index 0000000..380e847 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeCodec.java @@ -0,0 +1,90 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public interface IpfixIeCodec { + public static final Logger logger = LoggerFactory.getLogger(VariableLength.class); + + public IpfixIeDataTypes getDataType(); + + /** + * Deals with variable length Information Elements. There are two cases, as + * shown in the figures below. <h3>1. Length < 255 octets</h3> + * + * <pre> + * + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Length (< 255)| Information Element | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | ... continuing as needed | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * + * Figure R: Variable-Length Information Element (length < 255 octets) + * + * </pre> + * + * <h3>2. Length > 255</h3> + * + * <pre> + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | 255 | Length (0 to 65535) | IE | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | ... continuing as needed | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * + * </pre> + * + * @author FhG-FOKUS NETwork Research + * + */ + public static class VariableLength { + + /** + * Reads variable length information elements. + * + * @param setBuffer + * @return + */ + public static ByteBuffer getByteBuffer(ByteBuffer setBuffer) { + int len = ByteBufferUtil.getUnsignedByte(setBuffer, setBuffer.position()); + setBuffer.position(setBuffer.position()+1); + if( len == 0xff ){ + len = ByteBufferUtil.getUnsignedShort(setBuffer, setBuffer.position()); + setBuffer.position(setBuffer.position()+2); + + } + return ByteBufferUtil.sliceAndSkip(setBuffer, len); + } + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeDataTypes.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeDataTypes.java new file mode 100644 index 0000000..b7d24a8 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeDataTypes.java @@ -0,0 +1,181 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +/** + * <p> + * References + * <ul> + * <li><a href="http://www.iana.org/go/rfc5610">RFC 5102 Exporting Type + * Information for IP Flow Information Export (IPFIX) Information Elements</a></li> + * <li><a href="http://tools.ietf.org/html/rfc5102">RFC 5102 - Information Model + * for IP Flow Information Export </a></li> + * </ul> + * </p> + * + * @author FhG-FOKUS NETwork Research + * + */ +public enum IpfixIeDataTypes { + /** + * The type "octetArray" represents a finite-length string of octets. + */ + OCTETARRAY(0, IpfixIe.VARIABLE_LENGTH), + /** + * The type "unsigned8" represents a non-negative integer value in the range + * of 0 to 255. + */ + UNSIGNED8(1, 1), + /** + * The type "unsigned16" represents a non-negative integer value in the + * range of 0 to 65535. + */ + UNSIGNED16(2, 2), + /** + * The type "unsigned32" represents a non-negative integer value in the + * range of 0 to 4294967295. + */ + UNSIGNED32(3, 4), + /** + * The type "unsigned64" represents a non-negative integer value in the + * range of 0 to 18446744073709551615. + */ + UNSIGNED64(4, 8), + /** + * The type "signed8" represents an integer value in the range of -128 to + * 127. + */ + SIGNED8(5, 1), + /** + * The type "signed16" represents an integer value in the range of -32768 to + * 32767. + */ + SIGNED16(6, 2), + /** + * The type "signed32" represents an integer value in the range of + * -2147483648 to 2147483647. + */ + SIGNED32(7, 4), + /** + * The type "signed64" represents an integer value in the range of + * -9223372036854775808 to 9223372036854775807. + */ + SIGNED64(8, 8), + /** + * The type "float32" corresponds to an IEEE single-precision 32-bit + * floating point type as defined in [IEEE.754.1985]. + */ + FLOAT32(9, 4), + /** + * The type "float64" corresponds to an IEEE double-precision 64-bit + * floating point type as defined in [IEEE.754.1985]. + */ + FLOAT64(10, 8), + /** + * The type "boolean" represents a binary value. The only allowed values are + * "true" and "false". + */ + BOOLEAN(11, 1), + /** + * The type "macAddress" represents a string of 6 octets. + */ + MACADDRESS(12, 6), + /** + * The type "string" represents a finite-length string of valid characters + * from the Unicode character encoding set [ISO.10646- 1.1993]. Unicode + * allows for ASCII [ISO.646.1991] and many other international character + * sets to be used. + */ + STRING(13, IpfixIe.VARIABLE_LENGTH), + /** + * The type "dateTimeSeconds" represents a time value in units of seconds + * based on coordinated universal time (UTC). The choice of an epoch, for + * example, 00:00 UTC, January 1, 1970, is left to corresponding encoding + * specifications for this type, for example, the IPFIX protocol + * specification. Leap seconds are excluded. Note that transformation of + * values might be required between different encodings if different epoch + * values are used. + */ + // TODO check this + DATETIMESECONDS(14, IpfixIe.VARIABLE_LENGTH), + /** + * The type "dateTimeMilliseconds" represents a time value in units of + * milliseconds based on coordinated universal time (UTC). The choice of an + * epoch, for example, 00:00 UTC, January 1, 1970, is left to corresponding + * encoding specifications for this type, for example, the IPFIX protocol + * specification. Leap seconds are excluded. Note that transformation of + * values might be required between different encodings if different epoch + * values are used. + */ + DATETIMEMILLISECONDS(15, IpfixIe.VARIABLE_LENGTH), + /** + * The type "dateTimeMicroseconds" represents a time value in units of + * microseconds based on coordinated universal time (UTC). The choice of an + * epoch, for example, 00:00 UTC, January 1, 1970, is left to corresponding + * encoding specifications for this type, for example, the IPFIX protocol + * specification. Leap seconds are excluded. Note that transformation of + * values might be required between different encodings if different epoch + * values are used. + */ + DATETIMEMICROSECONDS(16, IpfixIe.VARIABLE_LENGTH), + /** + * The type "dateTimeNanoseconds" represents a time value in units of + * nanoseconds based on coordinated universal time (UTC). The choice of an + * epoch, for example, 00:00 UTC, January 1, 1970, is left to corresponding + * encoding specifications for this type, for example, the IPFIX protocol + * specification. Leap seconds are excluded. Note that transformation of + * values might be required between different encodings if different epoch + * values are used. + */ + DATETIMENANOSECONDS(17, IpfixIe.VARIABLE_LENGTH), + /** + * The type "ipv4Address" represents a value of an IPv4 address. + */ + IPV4ADDRESS(18, 4), + /** + * The type "ipv6Address" represents a value of an IPv6 address. + */ + IPV6ADDRESS(19, 16); + private final int encondingValue; + private final int defaultLength; + + private IpfixIeDataTypes(int value, int length) { + this.encondingValue = value; + this.defaultLength = length; + } + + /** + * Get encoding value. + * + * @return + */ + public int getEncodingValue() { + return encondingValue; + } + + /** + * Get default length in octets. + * + * @return Length in octets or {@link IpfixIe#VARIABLE_LENGTH}. + */ + public int getDefaultLength() { + return defaultLength; + } + + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeSemantics.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeSemantics.java new file mode 100644 index 0000000..9cb6792 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeSemantics.java @@ -0,0 +1,59 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public enum IpfixIeSemantics { + DEFAULT(0), + QUANTITY(1), + TOTALCOUNTER(2), + DELTACOUNTER(3), + IDENTIFIER(4), + FLAGS(5), + UNASSIGNED(6); + + private final int value; + private static final Logger logger = LoggerFactory.getLogger(IpfixIeSemantics.class); + + IpfixIeSemantics(int value) { + this.value = value; + } + + public int getValue() { + return value; + } + public static IpfixIeSemantics getFromModelName( String name ){ + if( name==null){ + return DEFAULT; + } + try { + return IpfixIeSemantics.valueOf(name.toUpperCase()); + }catch (Exception e) { + logger.debug("No ie semantics matched for \"{}\"",name); + return IpfixIeSemantics.DEFAULT; + } + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeStatus.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeStatus.java new file mode 100644 index 0000000..7324b53 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeStatus.java @@ -0,0 +1,38 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public enum IpfixIeStatus { + CURRENT("current"), + DEPRECATED("deprecated"), + OBSOLETE("obsolete"); + // TODO review: should we call it stringValue instead? + private final String value; + IpfixIeStatus( String value){ + this.value = value; + } + public String getValue() { + return value; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeUnits.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeUnits.java new file mode 100644 index 0000000..409822a --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixIeUnits.java @@ -0,0 +1,68 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public enum IpfixIeUnits { + NONE(0), + BITS(1), + OCTETS(2), + PACKETS(3), + FLOWS(4), + SECONDS(5), + MILLISECONDS(6), + MICROSECONDS(7), + NANOSECONDS(8), + FOUR_OCTET_WORDS(9), + MESSAGES(10), + HOPS(11), + ENTRIES(12), + UNASSIGNED(13); + private final static Logger logger = LoggerFactory.getLogger(IpfixIeUnits.class); + private final int value; + IpfixIeUnits(int value){ + this.value = value; + } + public int getValue() { + return value; + } + public static IpfixIeUnits getFromModelName( String name ){ + if( name==null){ + return NONE; + } + try { + String upper = name.toUpperCase(); + if(upper.contentEquals("4-OCTET WORDS")){ + return FOUR_OCTET_WORDS; + } + return IpfixIeUnits.valueOf(name.toUpperCase()); + }catch (Exception e) { + logger.debug("No units matched for \"{}\"",name); + return IpfixIeUnits.NONE; + } + } + + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixMessage.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixMessage.java new file mode 100644 index 0000000..c8d242f --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixMessage.java @@ -0,0 +1,223 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; +import java.util.Iterator; +import java.util.NoSuchElementException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.fhg.fokus.net.ipfix.api.IpfixTemplateManager.Statistics; +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public final class IpfixMessage implements Iterable<IpfixSet> { + // -- sys -- + private final static Logger logger = LoggerFactory + .getLogger(IpfixMessage.class); + // -- model -- + private ByteBuffer messageBuffer; + private short numberOfunknownSets = 0; + + // -- management -- + private final IpfixTemplateManager templateManager; + private final Statistics stats; + + public IpfixMessage(IpfixTemplateManager templateManager, + ByteBuffer byteBuffer) { + this.templateManager = templateManager; + this.stats = templateManager.getStatistics(); + // slicing + this.messageBuffer = ByteBufferUtil.sliceAndSkip(byteBuffer, IpfixHeader.getLength(byteBuffer, byteBuffer.position())); +// byteBuffer.position(byteBuffer.position()+getLength()); + + stats.globalBufferPosition = byteBuffer.position(); + + } + public void incNumberOfunknownSets(){ + numberOfunknownSets++; + } + public short getNumberOfunknownSets() { + return numberOfunknownSets; + } + + /** + * @return a sliced byte buffer of this message. Contents are shared, + * position and limit are not. + */ + public ByteBuffer getMessageBuffer() { + return messageBuffer.slice(); + } + + public Iterator<IpfixSet> iterator() { + return new Iterator<IpfixSet>() { + + private final ByteBuffer setsBuffer =ByteBufferUtil.skipAndSlice(IpfixHeader.SIZE_IN_OCTETS,messageBuffer); + private IpfixSetHeader currentSetHeader; + private IpfixSet last = null, next = null; + + public boolean hasNext() { + if (next != null) { + return true; + } + if (setsBuffer.hasRemaining()) { + try { + currentSetHeader = new IpfixSetHeader(setsBuffer); + next = new IpfixSet(IpfixMessage.this, templateManager, + currentSetHeader, setsBuffer); + + return true; + } catch (Exception e) { + e.printStackTrace(); + System.exit(-1); + logger.error(e.getMessage()); + } + } + return false; + } + + public IpfixSet next() { + if (next == null && !hasNext()) { + throw new NoSuchElementException(); + } + last = next; + next = null; + return last; + } + + public void remove() { + throw new UnsupportedOperationException("Cannot remove sets!"); + } + + }; + } + + @Override + public String toString() { + return String.format("msg:[ %s ]", IpfixHeader.toString(messageBuffer)); + } + + public long getObservationDomainID() { + return IpfixHeader.getObservationDomainID(messageBuffer); + } + + public int getVersion() { + return IpfixHeader.getVersion(messageBuffer); + } + + public int getLength() { + return IpfixHeader.getLength(messageBuffer); + } + + public long getExportTime() { + return IpfixHeader.getExportTime(messageBuffer); + } + + public long getSequenceNumber() { + return IpfixHeader.getSequenceNumber(messageBuffer); + } + + /** + * This currently performs the same function as aligned without logging + * messages. The intent is to use in IPFIX collector for buffering data in + * case not enough message is available for decoding. + * + * @param byteBuffer + * @return whether buffer contains a complete IPFIX message + */ + public static boolean enoughData(ByteBuffer byteBuffer) { + if( byteBuffer.remaining() <= IpfixHeader.SIZE_IN_OCTETS ){ + return false; + } + // two fingers alignment + int pos = byteBuffer.position(); + int msg1_version = ByteBufferUtil.getUnsignedShort(byteBuffer, pos + + IpfixHeader.IDX_VERSION); + // first finger + if (msg1_version == Ipfix.VERSION) { + int msg1_length = ByteBufferUtil.getUnsignedShort(byteBuffer, pos + + IpfixHeader.IDX_LENGTH); + if (msg1_length == 0) { + // message length must not be 0; + return false; + } + int limit = byteBuffer.limit(); + if (msg1_length > limit) { + // message length bigger than available data + return false; + } + if (limit > pos + msg1_length + IpfixHeader.SIZE_IN_OCTETS) { + // second finger + return ByteBufferUtil.getUnsignedShort(byteBuffer, pos + + msg1_length + IpfixHeader.IDX_VERSION) == Ipfix.VERSION; + } + return true; + } + return false; + + } + + /** + * Align byte buffer containing IPFIX messages. It skips invalid data + * positioning the buffer on a valid message. The current implementation + * uses two finger alignment. + * + */ + public static boolean align(ByteBuffer byteBuffer) { + // two fingers alignment + if( byteBuffer.remaining() <= IpfixHeader.SIZE_IN_OCTETS ){ + return false; + } + int pos = byteBuffer.position(); + int msg1_version = ByteBufferUtil.getUnsignedShort(byteBuffer, pos + + IpfixHeader.IDX_VERSION); + // first finger + if (msg1_version == Ipfix.VERSION) { + int limit = byteBuffer.limit(); + int msg1_length = ByteBufferUtil.getUnsignedShort(byteBuffer, pos + + IpfixHeader.IDX_LENGTH); + if (msg1_length == 0) { + logger.warn("Strange, message length is 0! I'll skip this " + + "and to continue searching for a valid ipfix header."); + return false; + } + if (msg1_length > limit) { +// logger.debug("Message length ({}) bigger than buffer limit({}), I'll skip this " +// + "and to continue searching for a valid ipfix header.",msg1_length,limit); + return false; + } + if (limit > pos + msg1_length + + IpfixHeader.SIZE_IN_OCTETS) { + // second finger + return ByteBufferUtil.getUnsignedShort(byteBuffer, pos + + msg1_length + IpfixHeader.IDX_VERSION) == Ipfix.VERSION; + } + return true; + } + + return false; + + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixOptionsTemplateRecord.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixOptionsTemplateRecord.java new file mode 100644 index 0000000..e91bafc --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixOptionsTemplateRecord.java @@ -0,0 +1,158 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.List; + +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * IPFIX Options Template Record. + * + * <h2>Header</h2> + * <pre> + * + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Template ID (> 255) | Field Count | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Scope Field Count | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * </pre> + * + * <h2>Field Specifier </h2> + * <pre> + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * |E| Information Element ident. | Field Length | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Enterprise Number | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * </pre> + * <h2> Record Format </h2> + * <pre> + * +--------------------------------------------------+ + * | Options Template Record Header | + * +--------------------------------------------------+ + * | Field Specifier | + * +--------------------------------------------------+ + * | Field Specifier | + * +--------------------------------------------------+ + * ... + * +--------------------------------------------------+ + * | Field Specifier | + * +--------------------------------------------------+ + * + * </pre> + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixOptionsTemplateRecord implements IpfixDataRecordSpecifier { + // -- constants -- + private static final int IDX_TEMPLATE_ID = 0; + private static final int IDX_FIELD_COUNT = 2; + private static final int IDX_SCOPE_FIELD_COUNT = 4; + private static final int HEADER_SIZE_IN_OCTETS = 6; + // -- model -- + private final ByteBuffer byteBuffer; + private final List<IpfixFieldSpecifier> fieldSpecifiers; + private final String uid; + private final int dataRecordLength; + private boolean isVariableLength = false; + /** + * Reads an IPFIX options template format. + * + * @param templateManager + * @param setBuffer + */ + public IpfixOptionsTemplateRecord(IpfixTemplateManager templateManager, + ByteBuffer setBuffer) { + // We need to linearly read the templates so the limit of sliced buffer + // will encompasses at first the whole set. This is fixed at the end. + this.byteBuffer = setBuffer.slice(); + this.byteBuffer.position(HEADER_SIZE_IN_OCTETS); + int fieldCount = getFieldCount(); + // TODO handle errors (check this value) + int scopeThreshold = fieldCount - getScopeFieldCount(); + this.fieldSpecifiers = new ArrayList<IpfixFieldSpecifier>(); + StringBuffer uidSbuf = new StringBuffer(); + int dataRecordLength = 0; + for( int i=0; i < fieldCount; i++ ){ + IpfixFieldSpecifier fs = new IpfixFieldSpecifier(byteBuffer); + if( i >= scopeThreshold ){ + fs.setScope(true); + } + int ieLength = fs.getIeLength(); + if (ieLength == IpfixIe.VARIABLE_LENGTH) { + this.isVariableLength = true; + } + uidSbuf.append(fs.getUid()); + dataRecordLength+=ieLength; + this.fieldSpecifiers.add(fs); + } + this.dataRecordLength = dataRecordLength; + this.uid = uidSbuf.toString(); + int limit = this.byteBuffer.position(); + this.byteBuffer.limit(limit); + setBuffer.position(setBuffer.position()+limit); + + // TODO handle errors + templateManager.registerOptionsTemplateRecord(this); + + } + @Override + public int getTemplateId() { + return ByteBufferUtil.getUnsignedShort(byteBuffer, IDX_TEMPLATE_ID); + } + + public int getFieldCount() { + return ByteBufferUtil.getUnsignedShort(byteBuffer, IDX_FIELD_COUNT); + } + + public int getScopeFieldCount() { + return ByteBufferUtil.getUnsignedShort(byteBuffer, + IDX_SCOPE_FIELD_COUNT); + } + @Override + public String toString() { + return String.format("otrec:{tid:%d, fcnt:%d, sfcnt:%d, len:%d, dlen:%d, flds:%s }", + getTemplateId(), getFieldCount(), getScopeFieldCount(), + byteBuffer.limit(), isVariableLength ? IpfixIe.VARIABLE_LENGTH:dataRecordLength, + fieldSpecifiers ); + } + /** + * + * @return Length in octets of respective data record. + */ + @Override + public int getDataRecordLength() { + return dataRecordLength; + } + @Override + public boolean isVariableLength() { + return isVariableLength; + } + public String getUid() { + return uid; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixRecord.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixRecord.java new file mode 100644 index 0000000..b472217 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixRecord.java @@ -0,0 +1,19 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixSet.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixSet.java new file mode 100644 index 0000000..ab52b59 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixSet.java @@ -0,0 +1,229 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; +import java.util.Iterator; +import java.util.NoSuchElementException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.fhg.fokus.net.ipfix.api.IpfixTemplateManager.Statistics; +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; +import de.fhg.fokus.net.ipfix.util.HexDump; + +/** + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixSet implements Iterable<Object> { + // -- sys -- + private static final Logger logger = LoggerFactory + .getLogger(IpfixSet.class); + // -- model -- + private final IpfixSetHeader header; + private ByteBuffer setBuffer; + private IpfixSetType type; + private final IpfixMessage msg; // won't be used here, just passed through to delegated decoding + // -- management -- + private final IpfixTemplateManager templateManager; + private final Statistics stats; + private Iterator<Object> iterator = new Iterator<Object>() { + @Override + public void remove() { + } + + @Override + public Object next() { + throw new NoSuchElementException(); + } + + @Override + public boolean hasNext() { + logger.warn("Trying to iterate over an invalid set: {}", + IpfixSet.this.toString()); + return false; + } + }; + public IpfixSet(IpfixMessage msg, IpfixTemplateManager templateManager, + IpfixSetHeader header, ByteBuffer setsBuffer) { + this.msg = msg; + this.header = header; + this.templateManager = templateManager; + this.stats = templateManager.getStatistics(); + if(this.header.getLength()==0){ + throw new RuntimeException("Set length is 0! At "+this.stats.globalBufferPosition); + } + + this.setBuffer = ByteBufferUtil.sliceAndSkip(setsBuffer, this.header.getLength() -IpfixSetHeader.SIZE_IN_OCTETS); + stats.setBufferPosition = setsBuffer.position(); + // + this.type = IpfixSetType.getSetType(this.header.getSetId()); + // Setting up record iterator + switch (type) { + // ------------------------------------------------------------------- + // Reading data records + // ------------------------------------------------------------------- + case DATA: + stats.numberOfDataSets++; + final int setId = this.header.getSetId(); + logger.debug("set id: " + setId); + final IpfixDataRecordReader recordReader = templateManager + .getDataRecordReader(setId); + logger.debug("reader: "+recordReader); + final IpfixDataRecordSpecifier recordSpecifier = templateManager + .getDataRecordSpecifier(setId); + logger.debug("record spec: " + recordSpecifier); + iterator = new RecordIterator() { + + @Override + public boolean hasNext() { + if (next != null) { + return true; + } + if (setBuffer.hasRemaining()) { + if (recordReader == null) { + if( recordSpecifier==null){ + IpfixSet.this.msg.incNumberOfunknownSets(); + // Skipping unknown set + logger.debug("Got unknown set, did the exporter " + + "send all template records? setid: {}, hexdump:{}", + setId, + HexDump.toHexString(setBuffer.slice())); + + return false; + } + if ( !recordSpecifier.isVariableLength()) { + next = new IpfixDefaultDataRecord(setBuffer, + recordSpecifier.getDataRecordLength()); + } else { + logger + .debug("Skipping unknown variable length set."); + return false; + } + } else { + next = recordReader.getRecord(IpfixSet.this.msg, setBuffer); + stats.numberOfDataRecords++; + return true; + } + } + return false; + } + }; + break; + // ------------------------------------------------------------------- + // Reading template records + // ------------------------------------------------------------------- + case TEMPLATE: + stats.numberOfTemplateSets++; + iterator = new RecordIterator() { + + @Override + public boolean hasNext() { + if (next != null) { + return true; + } + if (setBuffer.hasRemaining()) { + try { + next = new IpfixTemplateRecord( + IpfixSet.this.templateManager, setBuffer); + return true; + } catch (Exception e) { + logger.debug(e.getMessage()); + } + } + return false; + } + + }; + + break; + // ------------------------------------------------------------------- + // Reading option template records + // ------------------------------------------------------------------- + + case OPTIONS_TEMPLATE: + stats.numberOfOptionTemplateSets++; + iterator = new RecordIterator() { + @Override + public boolean hasNext() { + if (next != null) { + return true; + } + if (setBuffer.hasRemaining()) { + try { + next = new IpfixOptionsTemplateRecord( + IpfixSet.this.templateManager, setBuffer); + return true; + } catch (Exception e) { + logger.debug(e.getMessage()); + } + } + return false; + } + }; + break; + default: + break; + } + } + + public IpfixSetType getType() { + return type; + } + + @Override + public Iterator<Object> iterator() { + return iterator; + } + + public IpfixSetHeader getHeader() { + return header; + } + + /** + * Generic abstract ipfix record iterator + */ + private static abstract class RecordIterator implements Iterator<Object> { + protected Object last = null, next = null; + + @Override + public final Object next() { + if (next == null && !hasNext()) { + throw new NoSuchElementException(); + } + last = next; + next = null; + return last; + } + + @Override + public void remove() { + throw new UnsupportedOperationException( + "Cannot remove records from set!"); + } + } + + @Override + public String toString() { + return String.format("%s:{id:%d, len:%d}", type.getShortName(), header + .getSetId(), header.getLength()); + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixSetHeader.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixSetHeader.java new file mode 100644 index 0000000..7950234 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixSetHeader.java @@ -0,0 +1,108 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; + +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * + * <pre> + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Set ID | Length | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * </pre> + * + * @author FhG-FOKUS NETwork Research + */ +public class IpfixSetHeader { + // -- sys -- +// private final static Logger logger = LoggerFactory +// .getLogger(IpfixSetHeader.class); + // -- constants -- + private static final int IDX_SETID = 0; + private static final int IDX_LENGTH = 2; + public static final int SIZE_IN_OCTETS = 4; + // -- model -- + private int setId; + private int length; + + /** + * Read an IPFIX set header from byte buffer. Byte buffer position is + * updated accordingly; + * + * @param messageBuffer + */ + public IpfixSetHeader(ByteBuffer messageBuffer) { + // slicing + ByteBuffer bbuf = ByteBufferUtil.sliceAndSkip(messageBuffer, SIZE_IN_OCTETS); +// messageBuffer.limit(messageBuffer.position() + SIZE_IN_OCTETS); +// ByteBuffer bbuf = messageBuffer.slice(); +// messageBuffer.position(messageBuffer.limit()).limit( +// messageBuffer.capacity()); + // reading + this.setId = ByteBufferUtil.getUnsignedShort(bbuf, IDX_SETID); + this.length = ByteBufferUtil.getUnsignedShort(bbuf, IDX_LENGTH); + + } + /** + * <p> + * Set ID value identifies the Set. A value of 2 is reserved for the + * Template Set. A value of 3 is reserved for the Option Template Set. All + * other values from 4 to 255 are reserved for future use. Values above 255 + * are used for Data Sets. The Set ID values of 0 and 1 are not used for + * historical reasons [RFC3954]. + * </p> + * + * @return Set id + */ + + public int getSetId() { + return setId; + } + + public void setSetId(int setId) { + this.setId = setId; + } + + /** + * <p> + * Total length of the Set, in octets, including the Set Header, all + * records, and the optional padding. Because an individual Set MAY contain + * multiple records, the Length value MUST be used to determine the position + * of the next Set. + * </p> + * + * @return total set length in octets + */ + public int getLength() { + return length; + } + + public void setLength(int length) { + this.length = length; + } + + @Override + public String toString() { + return String.format("sethdr:{id:%d, len:%d}", setId, length); + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixSetType.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixSetType.java new file mode 100644 index 0000000..44df9ab --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixSetType.java @@ -0,0 +1,59 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public enum IpfixSetType { + INVALID(0,"invalidset"), + TEMPLATE(2, "tset"), + OPTIONS_TEMPLATE(3, "otset"), + DATA(256, "dset"); + private final int value; + private final String shortname; + IpfixSetType(int value, String name) { + this.value = value; + this.shortname = name; + } + public int getValue() { + return value; + } + public String getShortName() { + return shortname; + } + /** + * Return respective set type. + * + * @param setId + * @return + */ + public static IpfixSetType getSetType( int setId ){ + if( setId >= IpfixSetType.DATA.value){ + return IpfixSetType.DATA; + } + if( setId== IpfixSetType.TEMPLATE.value ){ + return IpfixSetType.TEMPLATE; + } else if(setId == IpfixSetType.OPTIONS_TEMPLATE.value) { + return IpfixSetType.OPTIONS_TEMPLATE; + } + return IpfixSetType.INVALID; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplate.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplate.java new file mode 100644 index 0000000..e05182b --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplate.java @@ -0,0 +1,71 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixTemplate { + // -- model -- + private final ByteBuffer bbuf; + private final IpfixIe [] ies; + private final String uid; + /** + * + * @param ies + */ + public IpfixTemplate(IpfixIe ... ies ) { + int capacity =0; + this.ies = ies; + for( IpfixIe ie: this.ies ){ + IpfixFieldSpecifier fld = ie.getFieldSpecifier(); + capacity+=fld.getFieldSpecifierLength(); + } + StringBuffer uidSbuf = new StringBuffer(); + this.bbuf = ByteBuffer.allocate(capacity); + // copying field specifiers to buffer + for( IpfixIe ie: this.ies ){ + IpfixFieldSpecifier fld = ie.getFieldSpecifier(); + ByteBuffer fldBuf = fld.getBytebuffer(); + fldBuf.limit(fld.getFieldSpecifierLength()); + fldBuf.rewind(); + this.bbuf.put(fldBuf); + uidSbuf.append(fld.getUid()); + } + this.uid = uidSbuf.toString(); + + } + public IpfixIe [] getInformationElements(){ + return ies; + } + + public ByteBuffer getByteBuffer(){ + return bbuf; + } + /** + * Used to match uid in {@link IpfixTemplateRecord} + * @return + */ + public String getUid() { + return uid; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplateForDataReader.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplateForDataReader.java new file mode 100644 index 0000000..c3e1e4c --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplateForDataReader.java @@ -0,0 +1,79 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; + +/** + * + * @author FhG-FOKUS NETwork Research + * + * FIXME rename-me please + * + */ +public class IpfixTemplateForDataReader { + // -- model -- + private final ByteBuffer bbuf; + private final IpfixIe [] ies; + private final String uid; + private final int recordSize; // used for slicing record buffers + /** + * + * @param ies + */ + public IpfixTemplateForDataReader(IpfixIe ... ies ) { + int capacity =0; + this.ies = ies; + for( IpfixIe ie: this.ies ){ + IpfixFieldSpecifier fld = ie.getFieldSpecifier(); + capacity+=fld.getFieldSpecifierLength(); + } + this.recordSize = capacity; + StringBuffer uidSbuf = new StringBuffer(); + this.bbuf = ByteBuffer.allocate(capacity); + // copying field specifiers to buffer + for( IpfixIe ie: this.ies ){ + IpfixFieldSpecifier fld = ie.getFieldSpecifier(); + ByteBuffer fldBuf = fld.getBytebuffer(); + fldBuf.limit(fld.getFieldSpecifierLength()); + fldBuf.rewind(); + this.bbuf.put(fldBuf); + uidSbuf.append(fld.getUid()); + } + this.uid = uidSbuf.toString(); + + } + public IpfixIe [] getInformationElements(){ + return ies; + } + + public ByteBuffer getByteBuffer(){ + return bbuf; + } + /** + * Used to match uid in {@link IpfixTemplateRecord} + * @return + */ + public String getUid() { + return uid; + } + public int getRecordSize() { + return recordSize; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplateManager.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplateManager.java new file mode 100644 index 0000000..0bf18cd --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplateManager.java @@ -0,0 +1,102 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + + +/** + * Manages IPFIX template state. + * + * @author FhG-FOKUS NETwork Research + * + */ +public interface IpfixTemplateManager { + public class Statistics { + public long numberOfMessages = 0; + public long numberOfDataSets = 0; + public long numberOfDataRecords = 0; + public long numberOfTemplateSets = 0; + public long numberOfTemplateRecords = 0; + public long numberOfOptionTemplateSets = 0; + public long numberOfOptionTemplateRecords = 0; + // TODO review this in the context of a collector + public long globalBufferPosition = 0; + public long invalidBytes = 0; + public int setBufferPosition = 0; + + @Override + public String toString() { + return String + .format( + "stats:{msgs:%d, data:{nsets:%d, nrecs:%d}, tmpl:{nsets:%d, nrecs:%d}, otmpl:{nsets:%d, nrecs:%d}, pos:{file:%d, set:%d}, invalidbytes:%d}", + numberOfMessages, numberOfDataSets, + numberOfDataRecords, numberOfTemplateSets, + numberOfTemplateRecords, + numberOfOptionTemplateSets, + numberOfOptionTemplateRecords, + globalBufferPosition, + setBufferPosition, + invalidBytes + ); + } + } + + /** + * Register template record so that subsequently data records can be + * decoded. + * + * @param ipfixTemplateRecord + */ + public void registerTemplateRecord(IpfixTemplateRecord ipfixTemplateRecord); + + /** + * Register option template record so that subsequently records can be + * decoded. + * + * @param ipfixOptionsTemplateRecord + */ + public void registerOptionsTemplateRecord( + IpfixOptionsTemplateRecord ipfixOptionsTemplateRecord); + + /** + * Data record reader are responsible for interpreting IPFIX data sets. + * Information elements are also registered by this call; + * + * @param reader + */ + public void registerDataRecordReader(IpfixDataRecordReader reader); + + /** + * + * @param templateId + * @return the respective ipfix data record reader or null if setId is + * unknown + */ + public IpfixDataRecordReader getDataRecordReader(int setId); + + public IpfixDataRecordSpecifier getDataRecordSpecifier(int setId); + + /** + * + * @param fieldSpecifier + * @return information element + */ + public IpfixIe getInformationElement(IpfixFieldSpecifier fieldSpecifier); + + public Statistics getStatistics(); + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplateRecord.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplateRecord.java new file mode 100644 index 0000000..0466d55 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/IpfixTemplateRecord.java @@ -0,0 +1,129 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api; + +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.List; + +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * Template Record Header + * + * <pre> + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Template ID (> 255) | Field Count | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * + * </pre> + * + * + * @author FhG-FOKUS NETwork Research + * + */ +public final class IpfixTemplateRecord implements IpfixDataRecordSpecifier { + // -- sys -- + // private final static Logger logger = + // LoggerFactory.getLogger(IpfixTemplateRecord.class); + // -- constants -- + private static final int IDX_TEMPLATE_ID = 0; + private static final int IDX_FIELD_COUNT = 2; + private static final int HEADER_SIZE_IN_OCTETS = 4; + // -- model -- + private final List<IpfixFieldSpecifier> fieldSpecifiers; + private final String uid; + private final ByteBuffer byteBuffer; + private final int dataRecordLength; + private boolean isVariableLength = false; + + public IpfixTemplateRecord(IpfixTemplateManager templateManager, + ByteBuffer setBuffer) { + // We need to linearly read the templates so the limit of sliced buffer + // will encompasses at first the whole set. This will be fixed at the + // end. + this.byteBuffer = setBuffer.slice(); + this.byteBuffer.position(HEADER_SIZE_IN_OCTETS); + int fieldCount = getFieldCount(); + + this.fieldSpecifiers = new ArrayList<IpfixFieldSpecifier>(); + StringBuffer uidSbuf = new StringBuffer(); + int dataRecordLength = 0; + for (int i = 0; i < fieldCount; i++) { + IpfixFieldSpecifier fs = new IpfixFieldSpecifier(this.byteBuffer); + IpfixIe ie = templateManager.getInformationElement(fs); + if (ie != null) { + fs.setInformationElement(ie); + } + this.fieldSpecifiers.add(fs); + int ieLength = fs.getIeLength(); + if (ieLength == IpfixIe.VARIABLE_LENGTH) { + this.isVariableLength = true; + } + dataRecordLength += ieLength; + uidSbuf.append(fs.getUid()); + } + int limit = this.byteBuffer.position(); + this.byteBuffer.limit(limit); + setBuffer.position(setBuffer.position() + limit); + this.dataRecordLength = dataRecordLength; + this.uid = uidSbuf.toString(); + if(templateManager!=null){ + templateManager.registerTemplateRecord(this); + } + } + + @Override + public String toString() { + return String.format( + "trec:{tid:%d, fcnt:%d, len=%d, dlen=%s, flds:%s}", + getTemplateId(), getFieldCount(), byteBuffer.limit(), + isVariableLength ? IpfixIe.VARIABLE_LENGTH : dataRecordLength, fieldSpecifiers); + } + + public List<IpfixFieldSpecifier> getFieldSpecifiers() { + return fieldSpecifiers; + } + + public String getUid() { + return uid; + } + + @Override + public int getTemplateId() { + return ByteBufferUtil.getUnsignedShort(byteBuffer, IDX_TEMPLATE_ID); + } + + public int getFieldCount() { + return ByteBufferUtil.getUnsignedShort(byteBuffer, IDX_FIELD_COUNT); + } + + /** + * @return Length in octets of respective data record. + */ + @Override + public int getDataRecordLength() { + return dataRecordLength; + } + @Override + public boolean isVariableLength() { + return isVariableLength; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecBoolean.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecBoolean.java new file mode 100644 index 0000000..50ff420 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecBoolean.java @@ -0,0 +1,37 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecBoolean implements IpfixIeCodec { + // private Logger logger = LoggerFactory.getLogger(getClass()); + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.BOOLEAN; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeMicroseconds.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeMicroseconds.java new file mode 100644 index 0000000..66e8e63 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeMicroseconds.java @@ -0,0 +1,48 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.math.BigInteger; +import java.nio.ByteBuffer; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecDateTimeMicroseconds implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.DATETIMEMILLISECONDS; + } + public BigInteger getBigInteger(ByteBuffer setBuffer) { + // TODO add support to compressed encodings + int fieldLength=8; + byte[] ba = new byte[fieldLength+1]; + ba[0]=0; + setBuffer.get(ba,1,fieldLength); + return new BigInteger(ba); + } + + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeMilliseconds.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeMilliseconds.java new file mode 100644 index 0000000..eaecbea --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeMilliseconds.java @@ -0,0 +1,44 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.math.BigInteger; +import java.nio.ByteBuffer; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecDateTimeMilliseconds implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.DATETIMEMICROSECONDS; + } + public BigInteger getBigInteger(ByteBuffer setBuffer){ + byte bb [] = new byte[fieldLength]; + setBuffer.get(bb); + return new BigInteger(bb); + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeNanoseconds.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeNanoseconds.java new file mode 100644 index 0000000..a0fa6cb --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeNanoseconds.java @@ -0,0 +1,36 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecDateTimeNanoseconds implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.DATETIMENANOSECONDS; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeSeconds.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeSeconds.java new file mode 100644 index 0000000..b5efeb3 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecDateTimeSeconds.java @@ -0,0 +1,36 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecDateTimeSeconds implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.DATETIMESECONDS; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecFloat32.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecFloat32.java new file mode 100644 index 0000000..55ae82f --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecFloat32.java @@ -0,0 +1,42 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.nio.ByteBuffer; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecFloat32 implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.FLOAT32; + } + // TODO review + public float getFloat(ByteBuffer setBuffer) { + return setBuffer.getFloat(); + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecFloat64.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecFloat64.java new file mode 100644 index 0000000..38da2a8 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecFloat64.java @@ -0,0 +1,43 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.nio.ByteBuffer; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecFloat64 implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.FLOAT64; + } + // TODO review + public double getDouble(ByteBuffer setBuffer) { + return setBuffer.getDouble(); + } + + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecIpv4Address.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecIpv4Address.java new file mode 100644 index 0000000..0827dd4 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecIpv4Address.java @@ -0,0 +1,57 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.net.Inet4Address; +import java.net.UnknownHostException; +import java.nio.ByteBuffer; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecIpv4Address implements IpfixIeCodec { + // -- sys -- + private Logger logger = LoggerFactory.getLogger(getClass()); + // -- model -- + protected int fieldLength = getDataType().getDefaultLength(); + + public Inet4Address getAddress(ByteBuffer setBuffer) { + byte[] ba = new byte[4]; + setBuffer.get(ba); + Inet4Address addr = null; + try { + addr = (Inet4Address) Inet4Address.getByAddress(ba); + } catch (UnknownHostException e) { + logger.warn("Invalid IPv4 address.", e.toString()); + } + return addr; + } + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.IPV4ADDRESS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecIpv6Address.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecIpv6Address.java new file mode 100644 index 0000000..ed93273 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecIpv6Address.java @@ -0,0 +1,34 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecIpv6Address implements IpfixIeCodec { + protected int fieldLength=getDataType().getDefaultLength(); + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.IPV6ADDRESS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecMacAddress.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecMacAddress.java new file mode 100644 index 0000000..d9694bb --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecMacAddress.java @@ -0,0 +1,36 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecMacAddress implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.MACADDRESS; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecOctetArray.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecOctetArray.java new file mode 100644 index 0000000..8f01c2d --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecOctetArray.java @@ -0,0 +1,48 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.io.UnsupportedEncodingException; +import java.nio.ByteBuffer; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecOctetArray implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.OCTETARRAY; + } + public ByteBuffer getByteBuffer( ByteBuffer setBuffer ){ + return VariableLength.getByteBuffer(setBuffer); + } + public String getString(ByteBuffer setBuffer, String charset ) throws UnsupportedEncodingException{ + ByteBuffer bbuf = VariableLength.getByteBuffer(setBuffer); + byte[] bytes = new byte[bbuf.remaining()]; + bbuf.get(bytes); + return new String(bytes,charset); + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned16.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned16.java new file mode 100644 index 0000000..4396822 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned16.java @@ -0,0 +1,36 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecSigned16 implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.SIGNED16; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned32.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned32.java new file mode 100644 index 0000000..886c486 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned32.java @@ -0,0 +1,36 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecSigned32 implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.SIGNED32; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned64.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned64.java new file mode 100644 index 0000000..70ff44f --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned64.java @@ -0,0 +1,36 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecSigned64 implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.SIGNED64; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned8.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned8.java new file mode 100644 index 0000000..12c4b5c --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecSigned8.java @@ -0,0 +1,36 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecSigned8 implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.SIGNED8; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecString.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecString.java new file mode 100644 index 0000000..0cd0949 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecString.java @@ -0,0 +1,48 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.io.UnsupportedEncodingException; +import java.nio.ByteBuffer; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecString implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.STRING; + } + + public ByteBuffer getByteBuffer( ByteBuffer setBuffer ){ + return VariableLength.getByteBuffer(setBuffer); + } + public String getString(ByteBuffer setBuffer) throws UnsupportedEncodingException{ + ByteBuffer bbuf = VariableLength.getByteBuffer(setBuffer); + byte[] bytes = new byte[bbuf.remaining()]; + bbuf.get(bytes); + return new String(bytes,"UTF-8"); + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned16.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned16.java new file mode 100644 index 0000000..c85748b --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned16.java @@ -0,0 +1,56 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.nio.ByteBuffer; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecUnsigned16 implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + // -- sys -- + private static final Logger logger = LoggerFactory + .getLogger(IpfixIeCodecUnsigned16.class); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.UNSIGNED16; + } + public int getInt(ByteBuffer setBuffer) { + if (fieldLength == 2) { + return ByteBufferUtil.getUnsignedShort(setBuffer); + } else if (fieldLength == 1) { + return ByteBufferUtil.getUnsignedByte(setBuffer); + } + logger.warn("Invalid unsigned16 encoding, returning 0., length:{}", + fieldLength); + return 0; + } + + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned32.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned32.java new file mode 100644 index 0000000..ff2aea9 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned32.java @@ -0,0 +1,58 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.nio.ByteBuffer; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecUnsigned32 implements IpfixIeCodec { + // -- sys -- + private static final Logger logger = LoggerFactory + .getLogger(IpfixIeCodecUnsigned32.class); + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.UNSIGNED32; + } + + public long getLong(ByteBuffer setBuffer) { + if (fieldLength == 4) { + return ByteBufferUtil.getUnsignedInt(setBuffer); + } else if (fieldLength == 2) { + return ByteBufferUtil.getUnsignedShort(setBuffer); + } else if (fieldLength == 1) { + return ByteBufferUtil.getUnsignedByte(setBuffer); + } + logger.warn("Invalid unsigned32 encoding, returning 0., length:{}", + fieldLength); + return 0; + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned64.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned64.java new file mode 100644 index 0000000..dd62997 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned64.java @@ -0,0 +1,67 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.math.BigInteger; +import java.nio.ByteBuffer; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public abstract class IpfixIeCodecUnsigned64 implements IpfixIeCodec { + /** + * You must set this. + */ + protected int fieldLength; + // -- sys -- + private static final Logger logger = LoggerFactory + .getLogger(IpfixIeCodecUnsigned64.class); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.UNSIGNED64; + } + public long getLong(ByteBuffer setBuffer) { + if (fieldLength == 4) { + return ByteBufferUtil.getUnsignedInt(setBuffer); + } else if (fieldLength == 2) { + return ByteBufferUtil.getUnsignedShort(setBuffer); + } else if (fieldLength == 1) { + return ByteBufferUtil.getUnsignedByte(setBuffer); + } + logger.warn("Invalid unsigned64 encoding, returning 0., length:{}", + fieldLength); + return 0; + } + + public BigInteger getBigInteger(ByteBuffer setBuffer) { + byte[] ba = new byte[fieldLength+1]; + ba[0]=0; + setBuffer.get(ba,1,fieldLength); + return new BigInteger(ba); + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned8.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned8.java new file mode 100644 index 0000000..2e75a74 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/IpfixIeCodecUnsigned8.java @@ -0,0 +1,43 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.api.codec; + +import java.nio.ByteBuffer; + +import de.fhg.fokus.net.ipfix.api.IpfixIeCodec; +import de.fhg.fokus.net.ipfix.api.IpfixIeDataTypes; +import de.fhg.fokus.net.ipfix.util.ByteBufferUtil; + +/** + * + * @author FhG-FOKUS NETwork Research + * + */ +public class IpfixIeCodecUnsigned8 implements IpfixIeCodec { + protected int fieldLength = getDataType().getDefaultLength(); + + @Override + public IpfixIeDataTypes getDataType() { + return IpfixIeDataTypes.UNSIGNED8; + } + + public short getShort( ByteBuffer setBuffer){ + return ByteBufferUtil.getUnsignedByte(setBuffer); + } + +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/package.html b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/package.html new file mode 100644 index 0000000..92eb4fa --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/codec/package.html @@ -0,0 +1,3 @@ +<html><head></head><body> +IPFIX API (coders and decoders) +</body></html>
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/package.html b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/package.html new file mode 100644 index 0000000..45df62e --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/api/package.html @@ -0,0 +1,3 @@ +<html><head></head><body> +IPFIX API +</body></html>
\ No newline at end of file diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeAbsoluteError.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeAbsoluteError.java new file mode 100644 index 0000000..abb3d31 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeAbsoluteError.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecFloat64; + + + +/** + * <pre> +absoluteError:{ + elementId:320, + dataType:float64, + dataTypeSemantis:quantity, + units:The units of the Information Element for which the error is specified. + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeAbsoluteError extends IpfixIeCodecFloat64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeAbsoluteError() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(320) + .setFieldLength(this.fieldLength); + } + public IpfixIeAbsoluteError( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(320) + .setFieldLength(this.fieldLength); + } + public IpfixIeAbsoluteError( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(320) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.QUANTITY; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "absoluteError"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpDestinationAsNumber.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpDestinationAsNumber.java new file mode 100644 index 0000000..dc5baf9 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpDestinationAsNumber.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +bgpDestinationAsNumber:{ + elementId:17, + dataType:unsigned32, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeBgpDestinationAsNumber extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeBgpDestinationAsNumber() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(17) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpDestinationAsNumber( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(17) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpDestinationAsNumber( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(17) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "bgpDestinationAsNumber"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpNextAdjacentAsNumber.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpNextAdjacentAsNumber.java new file mode 100644 index 0000000..eec7eea --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpNextAdjacentAsNumber.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +bgpNextAdjacentAsNumber:{ + elementId:128, + dataType:unsigned32, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeBgpNextAdjacentAsNumber extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeBgpNextAdjacentAsNumber() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(128) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpNextAdjacentAsNumber( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(128) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpNextAdjacentAsNumber( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(128) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "bgpNextAdjacentAsNumber"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpNextHopIPv4Address.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpNextHopIPv4Address.java new file mode 100644 index 0000000..da81e0d --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpNextHopIPv4Address.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecIpv4Address; + + + +/** + * <pre> +bgpNextHopIPv4Address:{ + elementId:18, + dataType:ipv4Address, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeBgpNextHopIPv4Address extends IpfixIeCodecIpv4Address implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeBgpNextHopIPv4Address() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(18) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpNextHopIPv4Address( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(18) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpNextHopIPv4Address( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(18) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "bgpNextHopIPv4Address"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpNextHopIPv6Address.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpNextHopIPv6Address.java new file mode 100644 index 0000000..78dc64e --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpNextHopIPv6Address.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecIpv6Address; + + + +/** + * <pre> +bgpNextHopIPv6Address:{ + elementId:63, + dataType:ipv6Address, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeBgpNextHopIPv6Address extends IpfixIeCodecIpv6Address implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeBgpNextHopIPv6Address() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(63) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpNextHopIPv6Address( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(63) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpNextHopIPv6Address( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(63) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "bgpNextHopIPv6Address"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpPrevAdjacentAsNumber.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpPrevAdjacentAsNumber.java new file mode 100644 index 0000000..0913e16 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpPrevAdjacentAsNumber.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +bgpPrevAdjacentAsNumber:{ + elementId:129, + dataType:unsigned32, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeBgpPrevAdjacentAsNumber extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeBgpPrevAdjacentAsNumber() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(129) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpPrevAdjacentAsNumber( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(129) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpPrevAdjacentAsNumber( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(129) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "bgpPrevAdjacentAsNumber"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpSourceAsNumber.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpSourceAsNumber.java new file mode 100644 index 0000000..486ef40 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBgpSourceAsNumber.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +bgpSourceAsNumber:{ + elementId:16, + dataType:unsigned32, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeBgpSourceAsNumber extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeBgpSourceAsNumber() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(16) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpSourceAsNumber( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(16) + .setFieldLength(this.fieldLength); + } + public IpfixIeBgpSourceAsNumber( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(16) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "bgpSourceAsNumber"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBiflowDirection.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBiflowDirection.java new file mode 100644 index 0000000..4fe19df --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeBiflowDirection.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned8; + + + +/** + * <pre> +biflowDirection:{ + elementId:239, + dataType:unsigned8, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeBiflowDirection extends IpfixIeCodecUnsigned8 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeBiflowDirection() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(239) + .setFieldLength(this.fieldLength); + } + public IpfixIeBiflowDirection( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(239) + .setFieldLength(this.fieldLength); + } + public IpfixIeBiflowDirection( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(239) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "biflowDirection"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectionTimeMilliseconds.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectionTimeMilliseconds.java new file mode 100644 index 0000000..3a9ae18 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectionTimeMilliseconds.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecDateTimeMilliseconds; + + + +/** + * <pre> +collectionTimeMilliseconds:{ + elementId:258, + dataType:dateTimeMilliseconds, + dataTypeSemantis:null, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeCollectionTimeMilliseconds extends IpfixIeCodecDateTimeMilliseconds implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeCollectionTimeMilliseconds() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(258) + .setFieldLength(this.fieldLength); + } + public IpfixIeCollectionTimeMilliseconds( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(258) + .setFieldLength(this.fieldLength); + } + public IpfixIeCollectionTimeMilliseconds( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(258) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "collectionTimeMilliseconds"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorCertificate.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorCertificate.java new file mode 100644 index 0000000..07412d3 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorCertificate.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecOctetArray; + + + +/** + * <pre> +collectorCertificate:{ + elementId:274, + dataType:octetArray, + dataTypeSemantis:null, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeCollectorCertificate extends IpfixIeCodecOctetArray implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeCollectorCertificate() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(274) + .setFieldLength(this.fieldLength); + } + public IpfixIeCollectorCertificate( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(274) + .setFieldLength(this.fieldLength); + } + public IpfixIeCollectorCertificate( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(274) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "collectorCertificate"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorIPv4Address.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorIPv4Address.java new file mode 100644 index 0000000..6aae68f --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorIPv4Address.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecIpv4Address; + + + +/** + * <pre> +collectorIPv4Address:{ + elementId:211, + dataType:ipv4Address, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeCollectorIPv4Address extends IpfixIeCodecIpv4Address implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeCollectorIPv4Address() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(211) + .setFieldLength(this.fieldLength); + } + public IpfixIeCollectorIPv4Address( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(211) + .setFieldLength(this.fieldLength); + } + public IpfixIeCollectorIPv4Address( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(211) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "collectorIPv4Address"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorIPv6Address.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorIPv6Address.java new file mode 100644 index 0000000..a950042 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorIPv6Address.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecIpv6Address; + + + +/** + * <pre> +collectorIPv6Address:{ + elementId:212, + dataType:ipv6Address, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeCollectorIPv6Address extends IpfixIeCodecIpv6Address implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeCollectorIPv6Address() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(212) + .setFieldLength(this.fieldLength); + } + public IpfixIeCollectorIPv6Address( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(212) + .setFieldLength(this.fieldLength); + } + public IpfixIeCollectorIPv6Address( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(212) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "collectorIPv6Address"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorTransportPort.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorTransportPort.java new file mode 100644 index 0000000..111ff8c --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCollectorTransportPort.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned16; + + + +/** + * <pre> +collectorTransportPort:{ + elementId:216, + dataType:unsigned16, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeCollectorTransportPort extends IpfixIeCodecUnsigned16 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeCollectorTransportPort() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(216) + .setFieldLength(this.fieldLength); + } + public IpfixIeCollectorTransportPort( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(216) + .setFieldLength(this.fieldLength); + } + public IpfixIeCollectorTransportPort( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(216) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "collectorTransportPort"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCommonPropertiesId.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCommonPropertiesId.java new file mode 100644 index 0000000..7a709cd --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeCommonPropertiesId.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned64; + + + +/** + * <pre> +commonPropertiesId:{ + elementId:137, + dataType:unsigned64, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeCommonPropertiesId extends IpfixIeCodecUnsigned64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeCommonPropertiesId() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(137) + .setFieldLength(this.fieldLength); + } + public IpfixIeCommonPropertiesId( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(137) + .setFieldLength(this.fieldLength); + } + public IpfixIeCommonPropertiesId( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(137) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "commonPropertiesId"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeConfidenceLevel.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeConfidenceLevel.java new file mode 100644 index 0000000..9dc403b --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeConfidenceLevel.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecFloat64; + + + +/** + * <pre> +confidenceLevel:{ + elementId:338, + dataType:float64, + dataTypeSemantis:quantity, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeConfidenceLevel extends IpfixIeCodecFloat64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeConfidenceLevel() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(338) + .setFieldLength(this.fieldLength); + } + public IpfixIeConfidenceLevel( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(338) + .setFieldLength(this.fieldLength); + } + public IpfixIeConfidenceLevel( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(338) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.QUANTITY; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "confidenceLevel"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDataRecordsReliability.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDataRecordsReliability.java new file mode 100644 index 0000000..565a9d3 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDataRecordsReliability.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecBoolean; + + + +/** + * <pre> +dataRecordsReliability:{ + elementId:276, + dataType:boolean, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDataRecordsReliability extends IpfixIeCodecBoolean implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDataRecordsReliability() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(276) + .setFieldLength(this.fieldLength); + } + public IpfixIeDataRecordsReliability( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(276) + .setFieldLength(this.fieldLength); + } + public IpfixIeDataRecordsReliability( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(276) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "dataRecordsReliability"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv4Address.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv4Address.java new file mode 100644 index 0000000..ec132b0 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv4Address.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecIpv4Address; + + + +/** + * <pre> +destinationIPv4Address:{ + elementId:12, + dataType:ipv4Address, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDestinationIPv4Address extends IpfixIeCodecIpv4Address implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDestinationIPv4Address() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(12) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv4Address( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(12) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv4Address( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(12) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "destinationIPv4Address"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv4Prefix.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv4Prefix.java new file mode 100644 index 0000000..af7ec7f --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv4Prefix.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecIpv4Address; + + + +/** + * <pre> +destinationIPv4Prefix:{ + elementId:45, + dataType:ipv4Address, + dataTypeSemantis:null, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDestinationIPv4Prefix extends IpfixIeCodecIpv4Address implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDestinationIPv4Prefix() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(45) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv4Prefix( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(45) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv4Prefix( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(45) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "destinationIPv4Prefix"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv4PrefixLength.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv4PrefixLength.java new file mode 100644 index 0000000..77ad3e6 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv4PrefixLength.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned8; + + + +/** + * <pre> +destinationIPv4PrefixLength:{ + elementId:13, + dataType:unsigned8, + dataTypeSemantis:null, + units:bits + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDestinationIPv4PrefixLength extends IpfixIeCodecUnsigned8 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDestinationIPv4PrefixLength() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(13) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv4PrefixLength( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(13) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv4PrefixLength( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(13) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "destinationIPv4PrefixLength"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.BITS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv6Address.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv6Address.java new file mode 100644 index 0000000..2b5f6e9 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv6Address.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecIpv6Address; + + + +/** + * <pre> +destinationIPv6Address:{ + elementId:28, + dataType:ipv6Address, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDestinationIPv6Address extends IpfixIeCodecIpv6Address implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDestinationIPv6Address() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(28) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv6Address( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(28) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv6Address( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(28) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "destinationIPv6Address"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv6Prefix.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv6Prefix.java new file mode 100644 index 0000000..04d6b7d --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv6Prefix.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecIpv6Address; + + + +/** + * <pre> +destinationIPv6Prefix:{ + elementId:169, + dataType:ipv6Address, + dataTypeSemantis:null, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDestinationIPv6Prefix extends IpfixIeCodecIpv6Address implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDestinationIPv6Prefix() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(169) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv6Prefix( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(169) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv6Prefix( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(169) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "destinationIPv6Prefix"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv6PrefixLength.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv6PrefixLength.java new file mode 100644 index 0000000..27824c4 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationIPv6PrefixLength.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned8; + + + +/** + * <pre> +destinationIPv6PrefixLength:{ + elementId:30, + dataType:unsigned8, + dataTypeSemantis:null, + units:bits + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDestinationIPv6PrefixLength extends IpfixIeCodecUnsigned8 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDestinationIPv6PrefixLength() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(30) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv6PrefixLength( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(30) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationIPv6PrefixLength( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(30) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "destinationIPv6PrefixLength"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.BITS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationMacAddress.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationMacAddress.java new file mode 100644 index 0000000..2aa8866 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationMacAddress.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecMacAddress; + + + +/** + * <pre> +destinationMacAddress:{ + elementId:80, + dataType:macAddress, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDestinationMacAddress extends IpfixIeCodecMacAddress implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDestinationMacAddress() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(80) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationMacAddress( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(80) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationMacAddress( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(80) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "destinationMacAddress"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationTransportPort.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationTransportPort.java new file mode 100644 index 0000000..f76b773 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDestinationTransportPort.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned16; + + + +/** + * <pre> +destinationTransportPort:{ + elementId:11, + dataType:unsigned16, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDestinationTransportPort extends IpfixIeCodecUnsigned16 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDestinationTransportPort() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(11) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationTransportPort( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(11) + .setFieldLength(this.fieldLength); + } + public IpfixIeDestinationTransportPort( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(11) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "destinationTransportPort"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDigestHashValue.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDigestHashValue.java new file mode 100644 index 0000000..6be17af --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDigestHashValue.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned64; + + + +/** + * <pre> +digestHashValue:{ + elementId:326, + dataType:unsigned64, + dataTypeSemantis:quantity, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDigestHashValue extends IpfixIeCodecUnsigned64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDigestHashValue() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(326) + .setFieldLength(this.fieldLength); + } + public IpfixIeDigestHashValue( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(326) + .setFieldLength(this.fieldLength); + } + public IpfixIeDigestHashValue( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(326) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.QUANTITY; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "digestHashValue"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qCustomerPriority.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qCustomerPriority.java new file mode 100644 index 0000000..dedb95b --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qCustomerPriority.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned8; + + + +/** + * <pre> +dot1qCustomerPriority:{ + elementId:246, + dataType:unsigned8, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDot1qCustomerPriority extends IpfixIeCodecUnsigned8 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDot1qCustomerPriority() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(246) + .setFieldLength(this.fieldLength); + } + public IpfixIeDot1qCustomerPriority( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(246) + .setFieldLength(this.fieldLength); + } + public IpfixIeDot1qCustomerPriority( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(246) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "dot1qCustomerPriority"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qCustomerVlanId.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qCustomerVlanId.java new file mode 100644 index 0000000..79a8705 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qCustomerVlanId.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned16; + + + +/** + * <pre> +dot1qCustomerVlanId:{ + elementId:245, + dataType:unsigned16, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDot1qCustomerVlanId extends IpfixIeCodecUnsigned16 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDot1qCustomerVlanId() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(245) + .setFieldLength(this.fieldLength); + } + public IpfixIeDot1qCustomerVlanId( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(245) + .setFieldLength(this.fieldLength); + } + public IpfixIeDot1qCustomerVlanId( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(245) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "dot1qCustomerVlanId"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qPriority.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qPriority.java new file mode 100644 index 0000000..b023c3d --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qPriority.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned8; + + + +/** + * <pre> +dot1qPriority:{ + elementId:244, + dataType:unsigned8, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDot1qPriority extends IpfixIeCodecUnsigned8 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDot1qPriority() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(244) + .setFieldLength(this.fieldLength); + } + public IpfixIeDot1qPriority( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(244) + .setFieldLength(this.fieldLength); + } + public IpfixIeDot1qPriority( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(244) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "dot1qPriority"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qVlanId.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qVlanId.java new file mode 100644 index 0000000..32979e8 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDot1qVlanId.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned16; + + + +/** + * <pre> +dot1qVlanId:{ + elementId:243, + dataType:unsigned16, + dataTypeSemantis:identifier, + units:octets + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDot1qVlanId extends IpfixIeCodecUnsigned16 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDot1qVlanId() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(243) + .setFieldLength(this.fieldLength); + } + public IpfixIeDot1qVlanId( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(243) + .setFieldLength(this.fieldLength); + } + public IpfixIeDot1qVlanId( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(243) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "dot1qVlanId"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.OCTETS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedOctetDeltaCount.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedOctetDeltaCount.java new file mode 100644 index 0000000..362b4fa --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedOctetDeltaCount.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned64; + + + +/** + * <pre> +droppedOctetDeltaCount:{ + elementId:132, + dataType:unsigned64, + dataTypeSemantis:deltaCounter, + units:octets + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDroppedOctetDeltaCount extends IpfixIeCodecUnsigned64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDroppedOctetDeltaCount() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(132) + .setFieldLength(this.fieldLength); + } + public IpfixIeDroppedOctetDeltaCount( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(132) + .setFieldLength(this.fieldLength); + } + public IpfixIeDroppedOctetDeltaCount( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(132) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DELTACOUNTER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "droppedOctetDeltaCount"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.OCTETS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedOctetTotalCount.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedOctetTotalCount.java new file mode 100644 index 0000000..acf09fc --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedOctetTotalCount.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned64; + + + +/** + * <pre> +droppedOctetTotalCount:{ + elementId:134, + dataType:unsigned64, + dataTypeSemantis:totalCounter, + units:octets + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDroppedOctetTotalCount extends IpfixIeCodecUnsigned64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDroppedOctetTotalCount() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(134) + .setFieldLength(this.fieldLength); + } + public IpfixIeDroppedOctetTotalCount( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(134) + .setFieldLength(this.fieldLength); + } + public IpfixIeDroppedOctetTotalCount( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(134) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.TOTALCOUNTER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "droppedOctetTotalCount"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.OCTETS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedPacketDeltaCount.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedPacketDeltaCount.java new file mode 100644 index 0000000..fad4a8b --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedPacketDeltaCount.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned64; + + + +/** + * <pre> +droppedPacketDeltaCount:{ + elementId:133, + dataType:unsigned64, + dataTypeSemantis:deltaCounter, + units:packets + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDroppedPacketDeltaCount extends IpfixIeCodecUnsigned64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDroppedPacketDeltaCount() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(133) + .setFieldLength(this.fieldLength); + } + public IpfixIeDroppedPacketDeltaCount( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(133) + .setFieldLength(this.fieldLength); + } + public IpfixIeDroppedPacketDeltaCount( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(133) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DELTACOUNTER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "droppedPacketDeltaCount"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.PACKETS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedPacketTotalCount.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedPacketTotalCount.java new file mode 100644 index 0000000..63df391 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeDroppedPacketTotalCount.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned64; + + + +/** + * <pre> +droppedPacketTotalCount:{ + elementId:135, + dataType:unsigned64, + dataTypeSemantis:totalCounter, + units:packets + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeDroppedPacketTotalCount extends IpfixIeCodecUnsigned64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeDroppedPacketTotalCount() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(135) + .setFieldLength(this.fieldLength); + } + public IpfixIeDroppedPacketTotalCount( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(135) + .setFieldLength(this.fieldLength); + } + public IpfixIeDroppedPacketTotalCount( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(135) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.TOTALCOUNTER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "droppedPacketTotalCount"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.PACKETS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEgressInterface.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEgressInterface.java new file mode 100644 index 0000000..ea6f5f4 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEgressInterface.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +egressInterface:{ + elementId:14, + dataType:unsigned32, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeEgressInterface extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeEgressInterface() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(14) + .setFieldLength(this.fieldLength); + } + public IpfixIeEgressInterface( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(14) + .setFieldLength(this.fieldLength); + } + public IpfixIeEgressInterface( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(14) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "egressInterface"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEgressPhysicalInterface.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEgressPhysicalInterface.java new file mode 100644 index 0000000..0a27378 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEgressPhysicalInterface.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +egressPhysicalInterface:{ + elementId:253, + dataType:unsigned32, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeEgressPhysicalInterface extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeEgressPhysicalInterface() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(253) + .setFieldLength(this.fieldLength); + } + public IpfixIeEgressPhysicalInterface( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(253) + .setFieldLength(this.fieldLength); + } + public IpfixIeEgressPhysicalInterface( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(253) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "egressPhysicalInterface"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEgressVRFID.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEgressVRFID.java new file mode 100644 index 0000000..8d28e41 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEgressVRFID.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +egressVRFID:{ + elementId:235, + dataType:unsigned32, + dataTypeSemantis:null, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeEgressVRFID extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeEgressVRFID() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(235) + .setFieldLength(this.fieldLength); + } + public IpfixIeEgressVRFID( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(235) + .setFieldLength(this.fieldLength); + } + public IpfixIeEgressVRFID( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(235) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "egressVRFID"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetHeaderLength.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetHeaderLength.java new file mode 100644 index 0000000..81becbd --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetHeaderLength.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned8; + + + +/** + * <pre> +ethernetHeaderLength:{ + elementId:240, + dataType:unsigned8, + dataTypeSemantis:identifier, + units:octets + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeEthernetHeaderLength extends IpfixIeCodecUnsigned8 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeEthernetHeaderLength() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(240) + .setFieldLength(this.fieldLength); + } + public IpfixIeEthernetHeaderLength( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(240) + .setFieldLength(this.fieldLength); + } + public IpfixIeEthernetHeaderLength( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(240) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "ethernetHeaderLength"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.OCTETS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetPayloadLength.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetPayloadLength.java new file mode 100644 index 0000000..a8705f0 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetPayloadLength.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned16; + + + +/** + * <pre> +ethernetPayloadLength:{ + elementId:241, + dataType:unsigned16, + dataTypeSemantis:identifier, + units:octets + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeEthernetPayloadLength extends IpfixIeCodecUnsigned16 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeEthernetPayloadLength() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(241) + .setFieldLength(this.fieldLength); + } + public IpfixIeEthernetPayloadLength( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(241) + .setFieldLength(this.fieldLength); + } + public IpfixIeEthernetPayloadLength( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(241) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "ethernetPayloadLength"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.OCTETS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetTotalLength.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetTotalLength.java new file mode 100644 index 0000000..befa024 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetTotalLength.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned16; + + + +/** + * <pre> +ethernetTotalLength:{ + elementId:242, + dataType:unsigned16, + dataTypeSemantis:identifier, + units:octets + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeEthernetTotalLength extends IpfixIeCodecUnsigned16 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeEthernetTotalLength() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(242) + .setFieldLength(this.fieldLength); + } + public IpfixIeEthernetTotalLength( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(242) + .setFieldLength(this.fieldLength); + } + public IpfixIeEthernetTotalLength( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(242) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "ethernetTotalLength"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.OCTETS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetType.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetType.java new file mode 100644 index 0000000..169a6e7 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeEthernetType.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned16; + + + +/** + * <pre> +ethernetType:{ + elementId:256, + dataType:unsigned16, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeEthernetType extends IpfixIeCodecUnsigned16 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeEthernetType() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(256) + .setFieldLength(this.fieldLength); + } + public IpfixIeEthernetType( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(256) + .setFieldLength(this.fieldLength); + } + public IpfixIeEthernetType( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(256) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "ethernetType"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportInterface.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportInterface.java new file mode 100644 index 0000000..66633a9 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportInterface.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +exportInterface:{ + elementId:213, + dataType:unsigned32, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExportInterface extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExportInterface() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(213) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportInterface( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(213) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportInterface( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(213) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exportInterface"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportProtocolVersion.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportProtocolVersion.java new file mode 100644 index 0000000..aefe2c7 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportProtocolVersion.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned8; + + + +/** + * <pre> +exportProtocolVersion:{ + elementId:214, + dataType:unsigned8, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExportProtocolVersion extends IpfixIeCodecUnsigned8 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExportProtocolVersion() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(214) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportProtocolVersion( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(214) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportProtocolVersion( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(214) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exportProtocolVersion"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportSctpStreamId.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportSctpStreamId.java new file mode 100644 index 0000000..f13dac0 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportSctpStreamId.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned16; + + + +/** + * <pre> +exportSctpStreamId:{ + elementId:259, + dataType:unsigned16, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExportSctpStreamId extends IpfixIeCodecUnsigned16 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExportSctpStreamId() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(259) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportSctpStreamId( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(259) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportSctpStreamId( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(259) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exportSctpStreamId"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportTransportProtocol.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportTransportProtocol.java new file mode 100644 index 0000000..a349f77 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportTransportProtocol.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned8; + + + +/** + * <pre> +exportTransportProtocol:{ + elementId:215, + dataType:unsigned8, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExportTransportProtocol extends IpfixIeCodecUnsigned8 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExportTransportProtocol() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(215) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportTransportProtocol( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(215) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportTransportProtocol( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(215) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exportTransportProtocol"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportedFlowRecordTotalCount.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportedFlowRecordTotalCount.java new file mode 100644 index 0000000..afc9cfe --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportedFlowRecordTotalCount.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned64; + + + +/** + * <pre> +exportedFlowRecordTotalCount:{ + elementId:42, + dataType:unsigned64, + dataTypeSemantis:totalCounter, + units:flows + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExportedFlowRecordTotalCount extends IpfixIeCodecUnsigned64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExportedFlowRecordTotalCount() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(42) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportedFlowRecordTotalCount( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(42) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportedFlowRecordTotalCount( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(42) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.TOTALCOUNTER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exportedFlowRecordTotalCount"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.FLOWS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportedMessageTotalCount.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportedMessageTotalCount.java new file mode 100644 index 0000000..ecdf3a0 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportedMessageTotalCount.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned64; + + + +/** + * <pre> +exportedMessageTotalCount:{ + elementId:41, + dataType:unsigned64, + dataTypeSemantis:totalCounter, + units:messages + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExportedMessageTotalCount extends IpfixIeCodecUnsigned64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExportedMessageTotalCount() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(41) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportedMessageTotalCount( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(41) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportedMessageTotalCount( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(41) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.TOTALCOUNTER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exportedMessageTotalCount"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.MESSAGES; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportedOctetTotalCount.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportedOctetTotalCount.java new file mode 100644 index 0000000..fed9773 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportedOctetTotalCount.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned64; + + + +/** + * <pre> +exportedOctetTotalCount:{ + elementId:40, + dataType:unsigned64, + dataTypeSemantis:totalCounter, + units:octets + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExportedOctetTotalCount extends IpfixIeCodecUnsigned64 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExportedOctetTotalCount() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(40) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportedOctetTotalCount( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(40) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportedOctetTotalCount( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(40) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.TOTALCOUNTER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exportedOctetTotalCount"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.OCTETS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterCertificate.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterCertificate.java new file mode 100644 index 0000000..4182076 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterCertificate.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecOctetArray; + + + +/** + * <pre> +exporterCertificate:{ + elementId:275, + dataType:octetArray, + dataTypeSemantis:null, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExporterCertificate extends IpfixIeCodecOctetArray implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExporterCertificate() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(275) + .setFieldLength(this.fieldLength); + } + public IpfixIeExporterCertificate( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(275) + .setFieldLength(this.fieldLength); + } + public IpfixIeExporterCertificate( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(275) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exporterCertificate"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterIPv4Address.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterIPv4Address.java new file mode 100644 index 0000000..429e534 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterIPv4Address.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecIpv4Address; + + + +/** + * <pre> +exporterIPv4Address:{ + elementId:130, + dataType:ipv4Address, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExporterIPv4Address extends IpfixIeCodecIpv4Address implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExporterIPv4Address() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(130) + .setFieldLength(this.fieldLength); + } + public IpfixIeExporterIPv4Address( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(130) + .setFieldLength(this.fieldLength); + } + public IpfixIeExporterIPv4Address( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(130) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exporterIPv4Address"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterIPv6Address.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterIPv6Address.java new file mode 100644 index 0000000..3a84291 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterIPv6Address.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecIpv6Address; + + + +/** + * <pre> +exporterIPv6Address:{ + elementId:131, + dataType:ipv6Address, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExporterIPv6Address extends IpfixIeCodecIpv6Address implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExporterIPv6Address() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(131) + .setFieldLength(this.fieldLength); + } + public IpfixIeExporterIPv6Address( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(131) + .setFieldLength(this.fieldLength); + } + public IpfixIeExporterIPv6Address( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(131) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exporterIPv6Address"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterTransportPort.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterTransportPort.java new file mode 100644 index 0000000..577ce03 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExporterTransportPort.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned16; + + + +/** + * <pre> +exporterTransportPort:{ + elementId:217, + dataType:unsigned16, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExporterTransportPort extends IpfixIeCodecUnsigned16 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExporterTransportPort() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(217) + .setFieldLength(this.fieldLength); + } + public IpfixIeExporterTransportPort( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(217) + .setFieldLength(this.fieldLength); + } + public IpfixIeExporterTransportPort( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(217) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exporterTransportPort"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportingProcessId.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportingProcessId.java new file mode 100644 index 0000000..5fb29ba --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeExportingProcessId.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +exportingProcessId:{ + elementId:144, + dataType:unsigned32, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeExportingProcessId extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeExportingProcessId() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(144) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportingProcessId( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(144) + .setFieldLength(this.fieldLength); + } + public IpfixIeExportingProcessId( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(144) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "exportingProcessId"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFirewallEvent.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFirewallEvent.java new file mode 100644 index 0000000..d09e168 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFirewallEvent.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned8; + + + +/** + * <pre> +firewallEvent:{ + elementId:233, + dataType:unsigned8, + dataTypeSemantis:null, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeFirewallEvent extends IpfixIeCodecUnsigned8 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeFirewallEvent() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(233) + .setFieldLength(this.fieldLength); + } + public IpfixIeFirewallEvent( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(233) + .setFieldLength(this.fieldLength); + } + public IpfixIeFirewallEvent( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(233) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "firewallEvent"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowActiveTimeout.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowActiveTimeout.java new file mode 100644 index 0000000..964206d --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowActiveTimeout.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned16; + + + +/** + * <pre> +flowActiveTimeout:{ + elementId:36, + dataType:unsigned16, + dataTypeSemantis:null, + units:seconds + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeFlowActiveTimeout extends IpfixIeCodecUnsigned16 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeFlowActiveTimeout() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(36) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowActiveTimeout( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(36) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowActiveTimeout( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(36) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "flowActiveTimeout"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.SECONDS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowDirection.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowDirection.java new file mode 100644 index 0000000..a5726b2 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowDirection.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned8; + + + +/** + * <pre> +flowDirection:{ + elementId:61, + dataType:unsigned8, + dataTypeSemantis:identifier, + units:null + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeFlowDirection extends IpfixIeCodecUnsigned8 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeFlowDirection() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(61) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowDirection( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(61) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowDirection( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(61) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.IDENTIFIER; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "flowDirection"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.NONE; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowDurationMicroseconds.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowDurationMicroseconds.java new file mode 100644 index 0000000..9fe31ca --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowDurationMicroseconds.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +flowDurationMicroseconds:{ + elementId:162, + dataType:unsigned32, + dataTypeSemantis:null, + units:microseconds + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeFlowDurationMicroseconds extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeFlowDurationMicroseconds() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(162) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowDurationMicroseconds( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(162) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowDurationMicroseconds( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(162) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "flowDurationMicroseconds"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.MICROSECONDS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowDurationMilliseconds.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowDurationMilliseconds.java new file mode 100644 index 0000000..cb72928 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowDurationMilliseconds.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +flowDurationMilliseconds:{ + elementId:161, + dataType:unsigned32, + dataTypeSemantis:null, + units:milliseconds + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeFlowDurationMilliseconds extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeFlowDurationMilliseconds() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(161) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowDurationMilliseconds( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(161) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowDurationMilliseconds( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(161) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "flowDurationMilliseconds"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.MILLISECONDS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowEndDeltaMicroseconds.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowEndDeltaMicroseconds.java new file mode 100644 index 0000000..97a5d58 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowEndDeltaMicroseconds.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecUnsigned32; + + + +/** + * <pre> +flowEndDeltaMicroseconds:{ + elementId:159, + dataType:unsigned32, + dataTypeSemantis:null, + units:microseconds + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeFlowEndDeltaMicroseconds extends IpfixIeCodecUnsigned32 implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeFlowEndDeltaMicroseconds() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(159) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowEndDeltaMicroseconds( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(159) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowEndDeltaMicroseconds( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(159) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "flowEndDeltaMicroseconds"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.MICROSECONDS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowEndMicroseconds.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowEndMicroseconds.java new file mode 100644 index 0000000..e333f88 --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowEndMicroseconds.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecDateTimeMicroseconds; + + + +/** + * <pre> +flowEndMicroseconds:{ + elementId:155, + dataType:dateTimeMicroseconds, + dataTypeSemantis:null, + units:microseconds + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeFlowEndMicroseconds extends IpfixIeCodecDateTimeMicroseconds implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override + public IpfixFieldSpecifier getFieldSpecifier() { + return fieldSpecifier; + } + + public IpfixIeFlowEndMicroseconds() { + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(155) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowEndMicroseconds( int length ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(0).setId(155) + .setFieldLength(this.fieldLength); + } + public IpfixIeFlowEndMicroseconds( int length, long enterpriseNumber, boolean isScope ) { + this.fieldLength = length; + this.fieldSpecifier = new IpfixFieldSpecifier(enterpriseNumber).setId(155) + .setFieldLength(this.fieldLength).setScope(isScope); + } + + + @Override + public IpfixIeSemantics getSemantics() { + return IpfixIeSemantics.DEFAULT; + } + + @Override + public IpfixIeStatus getStatus() { + return IpfixIeStatus.CURRENT; + } + + @Override + public String getName() { + return "flowEndMicroseconds"; + } + + @Override + public int getLength() { + return fieldSpecifier.getIeLength(); + } + + @Override + public IpfixIeUnits getUnits() { + return IpfixIeUnits.MICROSECONDS; + } +} diff --git a/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowEndMilliseconds.java b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowEndMilliseconds.java new file mode 100644 index 0000000..f8ff5fa --- /dev/null +++ b/Monitoring/MonitoringTool/PacketTracking/ipfix4java/ipfix-api/src/main/java/de/fhg/fokus/net/ipfix/model/ie/IpfixIeFlowEndMilliseconds.java @@ -0,0 +1,91 @@ +/** +* +* Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project +* Copyright according to BSD License +* For full text of the license see: ./novi/Software/Monitoring/MonitoringTool/PacketTracking/license.txt +* +* @author <a href="mailto:ramon.masek@fokus.fraunhofer.de">Ramon Masek</a>, Fraunhofer FOKUS +* @author <a href="mailto:c.henke@tu-berlin.de">Christian Henke</a>, Technical University Berlin +* @author <a href="mailto:carsten.schmoll@fokus.fraunhofer.de">Carsten Schmoll</a>, Fraunhofer FOKUS +* @author <a href="mailto:Julian.Vetter@campus.tu-berlin.de">Julian Vetter</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Jens Krenzin</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Michael Gehring</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Tacio Grespan Santos</a>, Fraunhofer FOKUS +* @author <a href="mailto:">Fabian Wolff</a>, Fraunhofer FOKUS +* +*/ + +package de.fhg.fokus.net.ipfix.model.ie; + +import de.fhg.fokus.net.ipfix.api.IpfixFieldSpecifier; +import de.fhg.fokus.net.ipfix.api.IpfixIe; +import de.fhg.fokus.net.ipfix.api.IpfixIeSemantics; +import de.fhg.fokus.net.ipfix.api.IpfixIeStatus; +import de.fhg.fokus.net.ipfix.api.IpfixIeUnits; +import de.fhg.fokus.net.ipfix.api.codec.IpfixIeCodecDateTimeMilliseconds; + + + +/** + * <pre> +flowEndMilliseconds:{ + elementId:153, + dataType:dateTimeMilliseconds, + dataTypeSemantis:null, + units:milliseconds + status:current + en: 0 +} +</pre> + * + */ +public final class IpfixIeFlowEndMilliseconds extends IpfixIeCodecDateTimeMilliseconds implements IpfixIe { + // -- model -- + private final IpfixFieldSpecifier fieldSpecifier; + + @Override |