All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.sadikovi.netflowlib.version.NetFlowV5 Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2016 sadikovi
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.github.sadikovi.netflowlib.version;

import com.github.sadikovi.netflowlib.predicate.Columns.IntColumn;
import com.github.sadikovi.netflowlib.predicate.Columns.LongColumn;
import com.github.sadikovi.netflowlib.predicate.Columns.ShortColumn;

public class NetFlowV5 extends NetFlow {
  // list of supported columns and size in bytes
  // Current seconds since 0000 UTC 1970, size: 4
  public static final LongColumn FIELD_UNIX_SECS = new LongColumn("unix_secs", 0);
  // Residual nanoseconds since 0000 UTC 1970, size: 4
  public static final LongColumn FIELD_UNIX_NSECS = new LongColumn("unix_nsecs", 4);
  // Current time in millisecs since router booted, size: 4
  public static final LongColumn FIELD_SYSUPTIME = new LongColumn("sys_uptime", 8);
  // Exporter IP address, size: 4
  public static final LongColumn FIELD_EXADDR = new LongColumn("export_ip", 12);
  // Source IP Address, size: 4
  public static final LongColumn FIELD_SRCADDR = new LongColumn("srcip", 16);
  // Destination IP Address, size: 4
  public static final LongColumn FIELD_DSTADDR = new LongColumn("dstip", 20);
  // Next hop router's IP Address, size: 4
  public static final LongColumn FIELD_NEXTHOP = new LongColumn("nexthop", 24);
  // Input interface index (known as Sif), size: 2
  public static final IntColumn FIELD_INPUT = new IntColumn("input", 28);
  // Output interface index (known as Dif), size: 2
  public static final IntColumn FIELD_OUTPUT = new IntColumn("output", 30);
  // Packets sent in Duration, size: 4
  public static final LongColumn FIELD_DPKTS = new LongColumn("packets", 32);
  // Octets sent in Duration, size: 4
  public static final LongColumn FIELD_DOCTETS = new LongColumn("octets", 36);
  // SysUptime at start of flow, size: 4
  public static final LongColumn FIELD_FIRST = new LongColumn("first", 40);
  // and of last packet of flow, size: 4
  public static final LongColumn FIELD_LAST = new LongColumn("last", 44);
  // TCP/UDP source port number or equivalent, size: 2
  public static final IntColumn FIELD_SRCPORT = new IntColumn("srcport", 48);
  // TCP/UDP destination port number or equiv, size: 2
  public static final IntColumn FIELD_DSTPORT = new IntColumn("dstport", 50);
  // IP protocol, e.g., 6=TCP, 17=UDP, ..., size: 1
  public static final ShortColumn FIELD_PROT = new ShortColumn("protocol", 52);
  // IP Type-of-Service, size: 1
  public static final ShortColumn FIELD_TOS = new ShortColumn("tos", 53);
  // OR of TCP header bits, size: 1
  public static final ShortColumn FIELD_TCP_FLAGS = new ShortColumn("tcp_flags", 54);
  // Type of flow switching engine (RP, VIP, etc.), size: 1
  // There is field "pad" which is unused byte in record, we skip it
  public static final ShortColumn FIELD_ENGINE_TYPE = new ShortColumn("engine_type", 56);
  // Slot number of the flow switching engine, size: 1
  public static final ShortColumn FIELD_ENGINE_ID = new ShortColumn("engine_id", 57);
  // mask length of source address, size: 1
  public static final ShortColumn FIELD_SRC_MASK = new ShortColumn("src_mask", 58);
  // mask length of destination address, size: 1
  public static final ShortColumn FIELD_DST_MASK = new ShortColumn("dst_mask", 59);
  // AS of source address, size: 2
  public static final IntColumn FIELD_SRC_AS = new IntColumn("src_as", 60);
  // AS of destination address, size: 2
  public static final IntColumn FIELD_DST_AS = new IntColumn("dst_as", 62);

  public NetFlowV5() { }

  @Override
  public int recordSize() {
    return 64;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy