@@ -281,6 +281,98 @@ typedef sai_status_t (*sai_get_inseg_entry_attribute_fn)(
281281 _In_ uint32_t attr_count ,
282282 _Inout_ sai_attribute_t * attr_list );
283283
284+ /**
285+ * @brief Bulk create In Segment entry
286+ *
287+ * @param[in] object_count Number of objects to create
288+ * @param[in] inseg_entry List of object to create
289+ * @param[in] attr_count List of attr_count. Caller passes the number
290+ * of attribute for each object to create.
291+ * @param[in] attr_list List of attributes for every object.
292+ * @param[in] mode Bulk operation error handling mode.
293+ * @param[out] object_statuses List of status for every object. Caller needs to
294+ * allocate the buffer
295+ *
296+ * @return #SAI_STATUS_SUCCESS on success when all objects are created or
297+ * #SAI_STATUS_FAILURE when any of the objects fails to create. When there is
298+ * failure, Caller is expected to go through the list of returned statuses to
299+ * find out which fails and which succeeds.
300+ */
301+ typedef sai_status_t (* sai_bulk_create_inseg_entry_fn )(
302+ _In_ uint32_t object_count ,
303+ _In_ const sai_inseg_entry_t * inseg_entry ,
304+ _In_ const uint32_t * attr_count ,
305+ _In_ const sai_attribute_t * * attr_list ,
306+ _In_ sai_bulk_op_error_mode_t mode ,
307+ _Out_ sai_status_t * object_statuses );
308+
309+ /**
310+ * @brief Bulk remove In Segment entry
311+ *
312+ * @param[in] object_count Number of objects to remove
313+ * @param[in] inseg_entry List of objects to remove
314+ * @param[in] mode Bulk operation error handling mode.
315+ * @param[out] object_statuses List of status for every object. Caller needs to
316+ * allocate the buffer
317+ *
318+ * @return #SAI_STATUS_SUCCESS on success when all objects are removed or
319+ * #SAI_STATUS_FAILURE when any of the objects fails to remove. When there is
320+ * failure, Caller is expected to go through the list of returned statuses to
321+ * find out which fails and which succeeds.
322+ */
323+ typedef sai_status_t (* sai_bulk_remove_inseg_entry_fn )(
324+ _In_ uint32_t object_count ,
325+ _In_ const sai_inseg_entry_t * inseg_entry ,
326+ _In_ sai_bulk_op_error_mode_t mode ,
327+ _Out_ sai_status_t * object_statuses );
328+
329+ /**
330+ * @brief Bulk set attribute on In Segment entry
331+ *
332+ * @param[in] object_count Number of objects to set attribute
333+ * @param[in] inseg_entry List of objects to set attribute
334+ * @param[in] attr_list List of attributes to set on objects, one attribute per object
335+ * @param[in] mode Bulk operation error handling mode.
336+ * @param[out] object_statuses List of status for every object. Caller needs to
337+ * allocate the buffer
338+ *
339+ * @return #SAI_STATUS_SUCCESS on success when all objects are removed or
340+ * #SAI_STATUS_FAILURE when any of the objects fails to remove. When there is
341+ * failure, Caller is expected to go through the list of returned statuses to
342+ * find out which fails and which succeeds.
343+ */
344+ typedef sai_status_t (* sai_bulk_set_inseg_entry_attribute_fn )(
345+ _In_ uint32_t object_count ,
346+ _In_ const sai_inseg_entry_t * inseg_entry ,
347+ _In_ const sai_attribute_t * attr_list ,
348+ _In_ sai_bulk_op_error_mode_t mode ,
349+ _Out_ sai_status_t * object_statuses );
350+
351+ /**
352+ * @brief Bulk get attribute on In Segment entry
353+ *
354+ * @param[in] object_count Number of objects to set attribute
355+ * @param[in] inseg_entry List of objects to set attribute
356+ * @param[in] attr_count List of attr_count. Caller passes the number
357+ * of attribute for each object to get
358+ * @param[inout] attr_list List of attributes to set on objects, one attribute per object
359+ * @param[in] mode Bulk operation error handling mode
360+ * @param[out] object_statuses List of status for every object. Caller needs to
361+ * allocate the buffer
362+ *
363+ * @return #SAI_STATUS_SUCCESS on success when all objects are removed or
364+ * #SAI_STATUS_FAILURE when any of the objects fails to remove. When there is
365+ * failure, Caller is expected to go through the list of returned statuses to
366+ * find out which fails and which succeeds.
367+ */
368+ typedef sai_status_t (* sai_bulk_get_inseg_entry_attribute_fn )(
369+ _In_ uint32_t object_count ,
370+ _In_ const sai_inseg_entry_t * inseg_entry ,
371+ _In_ const uint32_t * attr_count ,
372+ _Inout_ sai_attribute_t * * attr_list ,
373+ _In_ sai_bulk_op_error_mode_t mode ,
374+ _Out_ sai_status_t * object_statuses );
375+
284376/**
285377 * @brief MPLS methods table retrieved with sai_api_query()
286378 */
@@ -291,6 +383,11 @@ typedef struct _sai_mpls_api_t
291383 sai_set_inseg_entry_attribute_fn set_inseg_entry_attribute ;
292384 sai_get_inseg_entry_attribute_fn get_inseg_entry_attribute ;
293385
386+ sai_bulk_create_inseg_entry_fn create_inseg_entries ;
387+ sai_bulk_remove_inseg_entry_fn remove_inseg_entries ;
388+ sai_bulk_set_inseg_entry_attribute_fn set_inseg_entries_attribute ;
389+ sai_bulk_get_inseg_entry_attribute_fn get_inseg_entries_attribute ;
390+
294391} sai_mpls_api_t ;
295392
296393/**
0 commit comments