/* Hey Emacs use -*- mode: C -*- */ /* * 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. */ /** \brief Reply to l2_xconnect_dump @param context - sender context which was passed in the request @param rx_sw_if_index - Receive interface index @param tx_sw_if_index - Transmit interface index */ define l2_xconnect_details { u32 context; u32 rx_sw_if_index; u32 tx_sw_if_index; }; /** \brief Dump L2 XConnects @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request */ define l2_xconnect_dump { u32 client_index; u32 context; }; /** \brief l2 fib table entry structure @param bd_id - the l2 fib / bridge domain table id @param mac - the entry's mac address @param sw_if_index - index of the interface @param static_mac - the entry is statically configured. @param filter_mac - the entry is a mac filter entry. @param bvi_mac - the mac address is a bridge virtual interface */ define l2_fib_table_entry { u32 context; u32 bd_id; u64 mac; u32 sw_if_index; u8 static_mac; u8 filter_mac; u8 bvi_mac; }; /** \brief Dump l2 fib (aka bridge domain) table @param client_index - opaque cookie to identify the sender @param bd_id - the l2 fib / bridge domain table identifier */ define l2_fib_table_dump { u32 client_index; u32 context; u32 bd_id; }; /** \brief L2 fib clear table request, clear all mac entries in the l2 fib @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request */ define l2_fib_clear_table { u32 client_index; u32 context; }; /** \brief L2 fib clear table response @param context - sender context, to match reply w/ request @param retval - return code for the request */ define l2_fib_clear_table_reply { u32 context; i32 retval; }; /** \brief L2 FIB add entry request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param mac - the entry's mac address @param bd_id - the entry's bridge domain id @param sw_if_index - the interface @param is_add - If non zero add the entry, else delete it @param static_mac - @param filter_mac - */ define l2fib_add_del { u32 client_index; u32 context; u64 mac; u32 bd_id; u32 sw_if_index; u8 is_add; u8 static_mac; u8 filter_mac; u8 bvi_mac; }; /** \brief L2 FIB add entry response @param context - sender context, to match reply w/ request @param retval - return code for the add l2fib entry request */ define l2fib_add_del_reply { u32 context; i32 retval; }; /** \brief Set L2 flags request !!! TODO - need more info, feature bits in l2_input.h @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param sw_if_index - interface @param is_set - if non-zero, set the bits, else clear them @param feature_bitmap - non-zero bits to set or clear */ define l2_flags { u32 client_index; u32 context; u32 sw_if_index; u8 is_set; u32 feature_bitmap; }; /** \brief Set L2 bits response @param context - sender context, to match reply w/ request @param retval - return code for the set l2 bits request */ define l2_flags_reply { u32 context; i32 retval; u32 resulting_feature_bitmap; }; /** \brief L2 bridge domain add or delete request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param bd_id - the bridge domain to create @param flood - enable/disable bcast/mcast flooding in the bd @param uu_flood - enable/disable uknown unicast flood in the bd @param forward - enable/disable forwarding on all interfaces in the bd @param learn - enable/disable learning on all interfaces in the bd @param arp_term - enable/disable arp termination in the bd @param mac_age - mac aging time in min, 0 for disabled @param is_add - add or delete flag */ define bridge_domain_add_del { u32 client_index; u32 context; u32 bd_id; u8 flood; u8 uu_flood; u8 forward; u8 learn; u8 arp_term; u8 mac_age; u8 is_add; }; /** \brief L2 bridge domain add or delete response @param context - sender context, to match reply w/ request @param retval - return code for the set bridge flags request */ define bridge_domain_add_del_reply { u32 context; i32 retval; }; /** \brief L2 bridge domain request operational state details @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param bd_id - the bridge domain id desired or ~0 to request all bds */ define bridge_domain_dump { u32 client_index; u32 context; u32 bd_id; }; /** \brief L2 bridge domain operational state response @param bd_id - the bridge domain id @param flood - bcast/mcast flooding state on all interfaces in the bd @param uu_flood - uknown unicast flooding state on all interfaces in the bd @param forward - forwarding state on all interfaces in the bd @param learn - learning state on all interfaces in the bd @param arp_term - arp termination state on all interfaces in the bd @param mac_age - mac aging time in min, 0 for disabled @param n_sw_ifs - number of sw_if_index's in the domain */ define bridge_domain_details { u32 context; u32 bd_id; u8 flood; u8 uu_flood; u8 forward; u8 learn; u8 arp_term; u8 mac_age; u32 bvi_sw_if_index; u32 n_sw_ifs; }; /** \brief L2 bridge domain sw interface operational state response @param bd_id - the bridge domain id @param sw_if_index - sw_if_index in the domain @param shg - split horizon group for the interface */ define bridge_domain_sw_if_details { u32 context; u32 bd_id; u32 sw_if_index; u8 shg; }; /** \brief Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD, L2_UU_FLOOD, or L2_ARP_TERM) request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param bd_id - the bridge domain to set the flags for @param is_set - if non-zero, set the flags, else clear them @param feature_bitmap - bits that are non-zero to set or clear */ define bridge_flags { u32 client_index; u32 context; u32 bd_id; u8 is_set; u32 feature_bitmap; }; /** \brief Set bridge flags response @param context - sender context, to match reply w/ request @param retval - return code for the set bridge flags request @param resulting_feature_bitmap - the feature bitmap value after the request is implemented */ define bridge_flags_reply { u32 context; i32 retval; u32 resulting_feature_bitmap; }; /** \brief L2 interface vlan tag rewrite configure request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param sw_if_index - interface the operation is applied to @param vtr_op - Choose from l2_vtr_op_t enum values @param push_dot1q - first pushed flag dot1q id set, else dot1ad @param tag1 - Needed for any push or translate vtr op @param tag2 - Needed for any push 2 or translate x-2 vtr ops */ define l2_interface_vlan_tag_rewrite { u32 client_index; u32 context; u32 sw_if_index; u32 vtr_op; u32 push_dot1q; // ethertype of first pushed tag is dot1q/dot1ad u32 tag1; // first pushed tag u32 tag2; // second pushed tag }; /** \brief L2 interface vlan tag rewrite response @param context - sender context, to match reply w/ request @param retval - return code for the request */ define l2_interface_vlan_tag_rewrite_reply { u32 context; i32 retval; }; /** \brief L2 interface pbb tag rewrite configure request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param sw_if_index - interface the operation is applied to @param vtr_op - Choose from l2_vtr_op_t enum values @param inner_tag - needed for translate_qinq vtr op only @param outer_tag - needed for translate_qinq vtr op only @param b_dmac - B-tag remote mac address, needed for any push or translate_qinq vtr op @param b_smac - B-tag local mac address, needed for any push or translate qinq vtr op @param b_vlanid - B-tag vlanid, needed for any push or translate qinq vtr op @param i_sid - I-tag service id, needed for any push or translate qinq vtr op */ define l2_interface_pbb_tag_rewrite { u32 client_index; u32 context; u32 sw_if_index; u32 vtr_op; u16 outer_tag; u8 b_dmac[6]; u8 b_smac[6]; u16 b_vlanid; u32 i_sid; }; /** \brief L2 interface pbb tag rewrite response @param context - sender context, to match reply w/ request @param retval - return code for the request */ define l2_interface_pbb_tag_rewrite_reply { u32 context; i32 retval; }; /* * Local Variables: * eval: (c-set-style "gnu") * End: */