summaryrefslogtreecommitdiffstats
path: root/scripts/avl/avl.csv
blob: b09f6f1d95bcd7dee53f4c3aa7bc330559901e3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
id, name                                     ,  cps , f-pkts , f-bytes ,    Mb/sec ,    MB/sec,    c-flows ,   PPS , total-Mbytes-duration , errors ,flows 
 00, avl/http_get.pcap                        ,  102 ,    44 ,   38182 ,   29.71 ,    3.71 ,         45 ,  4488 ,       0 , 0 , 1 
 01, avl/http_post.pcap                       ,  102 ,    54 ,   48900 ,   38.05 ,    4.76 ,         55 ,  5508 ,       0 , 0 , 1 
 02, avl/https.pcap                           ,   33 ,    96 ,   92387 ,   23.26 ,    2.91 ,         32 ,  3168 ,       0 , 0 , 1 
 03, avl/http_browsing.pcap                   ,  179 ,    37 ,   34721 ,   47.42 ,    5.93 ,         66 ,  6623 ,       1 , 0 , 1 
 04, avl/exchange.pcap                        ,   64 ,    43 ,   10192 ,    4.98 ,    0.62 ,         28 ,  2752 ,       0 , 0 , 1 
 05, avl/email_pop1.pcap                      ,    1 ,    20 ,    5763 ,    0.05 ,    0.01 ,          0 ,    24 ,       0 , 0 , 1 
 06, avl/email_pop2.pcap                      ,    1 ,   114 ,  102429 ,    0.94 ,    0.12 ,          1 ,   137 ,       0 , 0 , 1 
 07, avl/email_pop4_29.pcap                   ,    1 ,    30 ,   15870 ,    0.15 ,    0.02 ,          0 ,    36 ,       0 , 0 , 1 
 08, avl/oracle.pcap                          ,   20 ,   302 ,   58547 ,    8.93 ,    1.12 ,         60 ,  6040 ,       0 , 0 , 1 
 09, avl/rtp_160_0.pcap                       ,    1 ,    84 ,   97484 ,    0.52 ,    0.07 ,          1 ,    59 ,       0 , 0 , 1 
 10, avl/rtp_160_1.pcap                       ,    1 ,  1244 , 1138480 ,    6.08 ,    0.76 ,          9 ,   871 ,       0 , 0 , 1 
 11, avl/rtp_250k_1_0.pcap                    ,    0 ,   108 ,  147128 ,    0.56 ,    0.07 ,          1 ,    54 ,       0 , 0 , 1 
 12, avl/rtp_250k_2_0.pcap                    ,    0 ,  1920 , 1767018 ,    6.74 ,    0.84 ,         10 ,   960 ,       0 , 0 , 1 
 13, avl/smtp_1.pcap                          ,    2 ,    22 ,    5794 ,    0.08 ,    0.01 ,          0 ,    41 ,       0 , 0 , 1 
 14, avl/smtp_2.pcap                          ,    2 ,    35 ,   18624 ,    0.26 ,    0.03 ,          1 ,    65 ,       0 , 0 , 1 
 15, avl/smtp_3.pcap                          ,    2 ,   110 ,   97424 ,    1.38 ,    0.17 ,          2 ,   204 ,       0 , 0 , 1 
 16, avl/video_call_0.pcap                    ,    3 ,  2325 , 2551177 ,   58.39 ,    7.30 ,         70 ,  6975 ,       1 , 0 , 1 
 17, avl/video_rtp_1588_0.pcap                ,    7 ,  1558 ,  123704 ,    6.98 ,    0.87 ,        115 , 11529 ,       0 , 0 , 1 
 18, avl/citrix_0.pcap                        ,   11 ,   272 ,   86729 ,    7.28 ,    0.91 ,         30 ,  2992 ,       0 , 0 , 1 
 19, avl/dns_0.pcap                           ,  498 ,     2 ,     178 ,    0.68 ,    0.08 ,         10 ,   996 ,       0 , 0 , 1 
 20, avl/sip_0.pcap                           ,    7 ,     7 ,    2723 ,    0.15 ,    0.02 ,          1 ,    52 ,       0 , 0 , 1 
 21, avl/rtsp_0.pcap                          ,    1 ,    20 ,    4038 ,    0.04 ,    0.00 ,          0 ,    24 ,       0 , 0 , 1 

 00, sum                                      , 1040 ,  8447 , 6447492 ,  242.63 ,   30.33 ,        536 , 53596 ,       3 , 0 , 22 
ghlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
/*
 * Copyright (c) 2015 Cisco and/or its affiliates.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at:
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#ifndef included_nsh_h
#define included_nsh_h

#include <vnet/vnet.h>
#include <nsh/nsh_packet.h>
#include <vnet/ip/ip4_packet.h>

typedef struct {

  /** Key for nsh_header_t entry: 24bit NSP 8bit NSI */
  u32 nsp_nsi;

  /** Key for nsh_header_t entry to map to. : 24bit NSP 8bit NSI
   *  This may be ~0 if next action is to decap to NSH next protocol
   *  Note the following heuristic:
   *  if nsp_nsi == mapped_nsp_nsi then use-case is like SFC SFF
   *  if nsp_nsi != mapped_nsp_nsi then use-case is like SFC SF
   *  Note: these are heuristics. Rules about NSI decrement are out of scope
   */
  u32 mapped_nsp_nsi;

  /* NSH Header action: swap, push and pop */
  u32 nsh_action;

  /* vnet intfc sw_if_index */
  u32 sw_if_index;

  u32 next_node;

} nsh_map_t;

typedef struct {
  nsh_map_t map;
  u8 is_add;
} nsh_add_del_map_args_t;

typedef struct {
  u8 is_add;
  nsh_header_t nsh;
} nsh_add_del_entry_args_t;

typedef struct {
  /* API message ID base */
  u16 msg_id_base;

  /* vector of nsh_header entry instances */
  nsh_header_t *nsh_entries;

  /* hash lookup nsh header by key: {u32: nsp_nsi} */
  uword * nsh_entry_by_key;

  /* vector of nsh_mappings */
  nsh_map_t *nsh_mappings;

  /* hash lookup nsh mapping by key: {u32: nsp_nsi} */
  uword * nsh_mapping_by_key;
  uword * nsh_mapping_by_mapped_key; // for use in NSHSFC

  /* convenience */
  vlib_main_t * vlib_main;
  vnet_main_t * vnet_main;
} nsh_main_t;

nsh_main_t nsh_main;

u8 * format_nsh_input_map_trace (u8 * s, va_list * args);
u8 * format_nsh_header_with_length (u8 * s, va_list * args);

/* Helper macros used in nsh.c and nsh_test.c */
#define foreach_copy_nshhdr_field               \
_(ver_o_c)					\
_(length)					\
_(md_type)					\
_(next_protocol)				\
_(nsp_nsi)					\
_(c1)						\
_(c2)						\
_(c3)						\
_(c4)
/* TODO Temp killing tlvs as its causing pain - fix in NSH_SFC */
#define foreach_32bit_field			\
_(nsp_nsi)                                      \
_(c1)                                           \
_(c2)                                           \
_(c3)                                           \
_(c4)

/* Statistics (not really errors) */
#define foreach_nsh_input_error    \
_(MAPPED, "NSH header found and mapped") \
_(NO_MAPPING, "no mapping for nsh key") \
_(INVALID_NEXT_PROTOCOL, "invalid next protocol") \

typedef enum {
#define _(sym,str) NSH_INPUT_ERROR_##sym,
    foreach_nsh_input_error
#undef _
  NSH_INPUT_N_ERROR,

} nsh_input_error_t;

#define foreach_nsh_input_next        \
  _(DROP, "error-drop")			\
  _(ENCAP_GRE, "gre-input" )		\
  _(ENCAP_VXLANGPE, "vxlan-gpe-encap" ) \
/* /\* TODO once moved to Project:NSH_SFC *\/ */
  /* _(ENCAP_ETHERNET, "*** TX TO ETHERNET ***")   \ */
/*   _(DECAP_ETHERNET_LOOKUP, "ethernet-input" )	\ */
/*   _(DECAP_IP4_INPUT,  "ip4-input") \ */
/*   _(DECAP_IP6_INPUT,  "ip6-input" ) \  */

typedef enum {
#define _(s,n) NSH_INPUT_NEXT_##s,
  foreach_nsh_input_next
#undef _
  NSH_INPUT_N_NEXT,
} nsh_input_next_t;

typedef enum {
  NSH_ACTION_SWAP,
  NSH_ACTION_PUSH,
  NSH_ACTION_POP
};

#endif /* included_nsh_h */