aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/bier/bier.api
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2017-10-21 10:53:20 -0700
committerDamjan Marion <dmarion.lists@gmail.com>2017-11-09 15:16:52 +0000
commitd792d9c01e60656cbfe1b0f1fd6a9b125f5dab0c (patch)
treedb88d99dd8102389fb92e8ed44bc7d6a55dc3080 /src/vnet/bier/bier.api
parenta2ff7b8cfc829ffbb6d5de7534efb51f7cba9cf3 (diff)
BIER
- see draft-ietf-bier-mpls-encapsulation-10 - midpoint, head and tail functions - supported payload protocols; IPv4 and IPv6 only. Change-Id: I59d7363bb6fdfdce8e4016a68a9c8f5a5e5791cb Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/bier/bier.api')
-rw-r--r--src/vnet/bier/bier.api268
1 files changed, 268 insertions, 0 deletions
diff --git a/src/vnet/bier/bier.api b/src/vnet/bier/bier.api
new file mode 100644
index 00000000000..466524cc6a3
--- /dev/null
+++ b/src/vnet/bier/bier.api
@@ -0,0 +1,268 @@
+/*
+ * Copyright (c) 2016 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.
+ */
+
+/** \file
+
+ This file defines vpp BIER control-plane API messages which are generally
+ called through a shared memory interface.
+*/
+vl_api_version 1.0.0
+
+/** \brief BIER Table Indentifier
+ @param bt_set
+ @param bt_sub_domain
+ @param bt_bit_header_length
+*/
+typeonly define bier_table_id
+{
+ u8 bt_set;
+ u8 bt_sub_domain;
+ u8 bt_hdr_len_id;
+};
+
+/** \brief BIER Table Add / del route
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param bt_tbl_id - The BIER table-id the route is added in
+ @param bt_mpls_label - The MPLS label for the table
+ @param bt_is_add - Is this a route add or delete
+*/
+autoreply define bier_table_add_del
+{
+ u32 client_index;
+ u32 context;
+ vl_api_bier_table_id_t bt_tbl_id;
+ u32 bt_label;
+ u8 bt_is_add;
+};
+
+define bier_table_dump
+{
+ u32 client_index;
+ u32 context;
+};
+
+define bier_table_details
+{
+ u32 context;
+ u32 bt_label;
+ vl_api_bier_table_id_t bt_tbl_id;
+};
+
+/** \brief FIB path
+ @param sw_if_index - index of the interface
+ @param weight - The weight, for UCMP
+ @param preference - The preference of the path. lowest preference is prefered
+ @param is_local - local if non-zero, else remote
+ @param is_drop - Drop the packet
+ @param is_unreach - Drop the packet and rate limit send ICMP unreachable
+ @param is_prohibit - Drop the packet and rate limit send ICMP prohibited
+ @param afi - the afi of the next hop, IP46_TYPE_IP4=1, IP46_TYPE_IP6=2
+ @param next_hop[16] - the next hop address
+
+ WARNING: this type is replicated, pending cleanup completion
+*/
+typeonly define fib_path3
+{
+ u32 sw_if_index;
+ u32 table_id;
+ u8 weight;
+ u8 preference;
+ u8 is_local;
+ u8 is_drop;
+ u8 is_unreach;
+ u8 is_prohibit;
+ u8 afi;
+ u8 next_hop[16];
+ u32 rpf_id;
+ u8 n_labels;
+ u32 label_stack[16];
+};
+
+/** \brief BIER Route Add / del route
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param br_bp - The Bit-position value
+ @param br_tbl_id - The BIER table-id the route is added in
+ @param br_is_add - Is this a route add or delete
+ @param br_is_replace - Are the paths specfied replacing those already
+ present or are they to be combined.
+ @param br_n_paths - The number of paths
+ @param br_paths - The array of paths
+*/
+autoreply define bier_route_add_del
+{
+ u32 client_index;
+ u32 context;
+ u16 br_bp;
+ u8 br_is_add;
+ u8 br_is_replace;
+ vl_api_bier_table_id_t br_tbl_id;
+ u8 br_n_paths;
+ vl_api_fib_path3_t br_paths[br_n_paths];
+};
+
+define bier_route_dump
+{
+ u32 client_index;
+ u32 context;
+ vl_api_bier_table_id_t br_tbl_id;
+};
+
+define bier_route_details
+{
+ u32 client_index;
+ u32 context;
+ u16 br_bp;
+ vl_api_bier_table_id_t br_tbl_id;
+ u32 br_n_paths;
+ vl_api_fib_path3_t br_paths[br_n_paths];
+};
+
+/** \brief BIER Imposition Add
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param bi_tbl_id - The BIER table-id used to forward post encap
+ @param bi_src - The source Bit-position in the encap.
+ @param bi_is_add - Is this a route add or delete
+ @param bi_n_bytes - The number of bytes in the following bit-string
+ @param bi_bytes - The bit-string represented as a byte array
+*/
+define bier_imp_add
+{
+ u32 client_index;
+ u32 context;
+ vl_api_bier_table_id_t bi_tbl_id;
+ u16 bi_src;
+ u8 bi_is_add;
+ u8 bi_n_bytes;
+ u8 bi_bytes[bi_n_bytes];
+};
+
+/** \brief Reply for BIER route add / del request
+ @param context - returned sender context, to match reply w/ request
+ @param retval - return code
+ @param bi_index - The index of the created imposition object.
+*/
+define bier_imp_add_reply
+{
+ u32 context;
+ i32 retval;
+ u32 bi_index;
+};
+
+/** \brief BIER Imposition Del
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param bi_index - The index of the imposition object (as returned
+ from the ADD)
+*/
+autoreply define bier_imp_del
+{
+ u32 client_index;
+ u32 context;
+ u32 bi_index;
+};
+
+define bier_imp_dump
+{
+ u32 client_index;
+ u32 context;
+};
+
+define bier_imp_details
+{
+ u32 client_index;
+ u32 context;
+ vl_api_bier_table_id_t bi_tbl_id;
+ u16 bi_src;
+ u8 bi_n_bytes;
+ u8 bi_bytes[bi_n_bytes];
+};
+
+/** \brief BIER Disposition Table Add / del route
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param bt_tbl_id - The BIER Disposition table-id.
+*/
+autoreply define bier_disp_table_add_del
+{
+ u32 client_index;
+ u32 context;
+ u32 bdt_tbl_id;
+ u8 bdt_is_add;
+};
+
+define bier_disp_table_dump
+{
+ u32 client_index;
+ u32 context;
+};
+
+define bier_disp_table_details
+{
+ u32 context;
+ u32 bdt_tbl_id;
+};
+
+/** \brief BIER Disposition Entry Add / del
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param bde_bp - The Bit-position value for the entry
+ @param bde_tbl_id - The BIER dispositiontable-id the route is added in
+ @param bde_next_hop_sw_if_index - the nextop interface
+ @param bde_is_add - Is this a route add or delete
+ @param bde_payload_proto - The payload protocol for which the next-hop
+ is added
+ @param bde_next_hop_table_id - The table ID for the next-hop
+ @param bde_next_hop_proto_is_ip4 - The next-hop is IPV4
+ @param bde_next_hop[16] - the nextop address.
+ Set this to all 0s for dispostion.
+*/
+autoreply define bier_disp_entry_add_del
+{
+ u32 client_index;
+ u32 context;
+ u16 bde_bp;
+ u32 bde_tbl_id;
+ u8 bde_is_add;
+ u8 bde_payload_proto;
+ u8 bde_n_paths;
+ vl_api_fib_path3_t bde_paths[bde_n_paths];
+};
+
+define bier_disp_entry_dump
+{
+ u32 client_index;
+ u32 context;
+ u32 bde_tbl_id;
+};
+
+define bier_disp_entry_details
+{
+ u32 context;
+ u16 bde_bp;
+ u32 bde_tbl_id;
+ u8 bde_is_add;
+ u8 bde_payload_proto;
+ u8 bde_n_paths;
+ vl_api_fib_path3_t bde_paths[bde_n_paths];
+};
+
+/*
+ * Local Variables:
+ * eval: (c-set-style "gnu")
+ * End:
+ */