aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/CMakeLists.txt
blob: 43ad4cc2a25f0d4dca7bcdcd85a1578d1c51b1bc (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Copyright (c) 2018 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.

include_directories (
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_CURRENT_BINARY_DIR}
)

##############################################################################
# find and add all plugin subdirs
##############################################################################
FILE(GLOB files RELATIVE
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_CURRENT_SOURCE_DIR}/*/CMakeLists.txt
)

set(VPP_EXCLUDED_PLUGINS
  ""
  CACHE
  STRING "Comma-separated list of core plugins excluded from packaging and tests"
)

# create the list of the plugins that we need to exclude from packaging
SET(excluded_plugins "")
STRING(REGEX REPLACE "[,]+" ";" exc_plugins "${VPP_EXCLUDED_PLUGINS}")
foreach (e ${exc_plugins})
  message(WARNING "Excluding plugin due to VPP_EXCLUDED_PLUGINS: '${e}'")
  list(APPEND excluded_plugins ${e})
endforeach()

foreach (f ${files})
  get_filename_component(dir ${f} DIRECTORY)

  # if a plugin is in the list of excluded plugin, do not add that subdirectory
  LIST(FIND excluded_plugins "${dir}" exc_index)
  if(${exc_index} EQUAL "-1")
    add_subdirectory(${dir})
  endif()
endforeach()
ble */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .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.
 */
/* Emacs editing mode -*-C-*-

From http://www.iana.org/assignments/protocol-numbers

PROTOCOL NUMBERS

(last updated 18 October 2004)

In the Internet Protocol version 4 (IPv4) [RFC791] there is a field,
called "Protocol", to identify the next level protocol.  This is an 8
bit field.  In Internet Protocol version 6 (IPv6) [RFC1883] this field
is called the "Next Header" field.
*/
ip_protocol (0, IP6_HOP_BY_HOP_OPTIONS)
ip_protocol (1, ICMP)
ip_protocol (2, IGMP)
ip_protocol (3, GGP)
ip_protocol (4, IP_IN_IP)
ip_protocol (5, ST)
ip_protocol (6, TCP)
ip_protocol (7, CBT)
ip_protocol (8, EGP)
ip_protocol (9, IGP)
ip_protocol (10, BBN_RCC_MON)
ip_protocol (11, NVP_II)
ip_protocol (12, PUP)
ip_protocol (13, ARGUS)
ip_protocol (14, EMCON)
ip_protocol (15, XNET)
ip_protocol (16, CHAOS)
ip_protocol (17, UDP)
ip_protocol (18, MUX)
ip_protocol (19, DCN_MEAS)
ip_protocol (20, HMP)
ip_protocol (21, PRM)
ip_protocol (22, XNS_IDP)
ip_protocol (23, TRUNK_1)
ip_protocol (24, TRUNK_2)
ip_protocol (25, LEAF_1)
ip_protocol (26, LEAF_2)
ip_protocol (27, RDP)
ip_protocol (28, IRTP)
ip_protocol (29, ISO_TP4)
ip_protocol (30, NETBLT)
ip_protocol (31, MFE_NSP)
ip_protocol (32, MERIT_INP)
ip_protocol (33, SEP)
ip_protocol (34, 3PC)
ip_protocol (35, IDPR)
ip_protocol (36, XTP)
ip_protocol (37, DDP)
ip_protocol (38, IDPR_CMTP)
ip_protocol (39, TP)
ip_protocol (40, IL)
ip_protocol (41, IPV6)
ip_protocol (42, SDRP)
ip_protocol (43, IPV6_ROUTE)
ip_protocol (44, IPV6_FRAGMENTATION)
ip_protocol (45, IDRP)
ip_protocol (46, RSVP)
ip_protocol (47, GRE)
ip_protocol (48, MHRP)
ip_protocol (49, BNA)
ip_protocol (50, IPSEC_ESP)
ip_protocol (51, IPSEC_AH)
ip_protocol (52, I_NLSP)
ip_protocol (53, SWIPE)
ip_protocol (54, NARP)
ip_protocol (55, MOBILE)
ip_protocol (56, TLSP)
ip_protocol (57, SKIP)
ip_protocol (58, ICMP6)
ip_protocol (59, IP6_NONXT)
ip_protocol (60, IP6_DESTINATION_OPTIONS)
ip_protocol (62, CFTP)
ip_protocol (64, SAT_EXPAK)
ip_protocol (65, KRYPTOLAN)
ip_protocol (66, RVD)
ip_protocol (67, IPPC)
ip_protocol (69, SAT_MON)
ip_protocol (70, VISA)
ip_protocol (71, IPCV)
ip_protocol (72, CPNX)
ip_protocol (73, CPHB)
ip_protocol (74, WSN)
ip_protocol (75, PVP)
ip_protocol (76, BR_SAT_MON)
ip_protocol (77, SUN_ND)
ip_protocol (78, WB_MON)
ip_protocol (79, WB_EXPAK)
ip_protocol (80, ISO_IP)
ip_protocol (81, VMTP)
ip_protocol (82, SECURE_VMTP)
ip_protocol (83, VINES)
ip_protocol (84, TTP)
ip_protocol (85, NSFNET_IGP)
ip_protocol (86, DGP)
ip_protocol (87, TCF)
ip_protocol (88, EIGRP)
ip_protocol (89, OSPF)
ip_protocol (90, SPRITE_RPC)
ip_protocol (91, LARP)
ip_protocol (92, MTP)
ip_protocol (93, AX)
ip_protocol (94, IPIP)
ip_protocol (95, MICP)
ip_protocol (96, SCC_SP)
ip_protocol (97, ETHERIP)
ip_protocol (98, ENCAP)
ip_protocol (100, GMTP)
ip_protocol (101, IFMP)
ip_protocol (102, PNNI)
ip_protocol (103, PIM)
ip_protocol (104, ARIS)
ip_protocol (105, SCPS)
ip_protocol (106, QNX)
ip_protocol (107, A)
ip_protocol (108, IPCOMP)
ip_protocol (109, SNP)
ip_protocol (110, COMPAQ_PEER)
ip_protocol (111, IPX_IN_IP)
ip_protocol (112, VRRP)
ip_protocol (113, PGM)
ip_protocol (115, L2TP)
ip_protocol (116, DDX)
ip_protocol (117, IATP)
ip_protocol (118, STP)
ip_protocol (119, SRP)
ip_protocol (120, UTI)
ip_protocol (121, SMP)
ip_protocol (122, SM)
ip_protocol (123, PTP)
ip_protocol (124, ISIS)
ip_protocol (125, FIRE)
ip_protocol (126, CRTP)
ip_protocol (127, CRUDP)
ip_protocol (128, SSCOPMCE)
ip_protocol (129, IPLT)
ip_protocol (130, SPS)
ip_protocol (131, PIPE)
ip_protocol (132, SCTP)
ip_protocol (133, FC)
ip_protocol (134, RSVP_E2E_IGNORE)
ip_protocol (135, MOBILITY)
ip_protocol (136, UDP_LITE)
ip_protocol (137, MPLS_IN_IP)
/*
 * VPPs way of dealing with fragments is to mark them as 0xfe, to be picked
 * by the corresponding nodes based on this protocol
 */
ip_protocol (0xfe, VPP_FRAGMENTATION)
ip_protocol (255, RESERVED)