Skip to content

Commit 8b63874

Browse files
[DASH] Add flow bulk get session event data struct
Add flow bulk get event callback and supporting structures to provide ability to query flows in asynchronous manner. Signed-off-by: Marian Pritsak <marianp@mellanox.com>
1 parent 754ca66 commit 8b63874

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

experimental/saiswitchextensions.h

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,60 @@ typedef void (*sai_ha_scope_event_notification_fn)(
131131
_In_ uint32_t count,
132132
_In_ const sai_ha_scope_event_data_t *data);
133133

134+
/**
135+
* @brief Flow bulk get session event type
136+
*/
137+
typedef enum _sai_flow_bulk_get_session_event_t
138+
{
139+
/** Bulk get session finished */
140+
SAI_FLOW_BULK_GET_SESSION_EVENT_FINISHED,
141+
142+
/** Flow entry received */
143+
SAI_FLOW_BULK_GET_SESSION_EVENT_FLOW_ENTRY,
144+
145+
} sai_flow_bulk_get_session_event_t;
146+
147+
/**
148+
* @brief Notification data format received from SAI flow bulk get session callback
149+
*
150+
* @count attr[attr_count]
151+
*/
152+
typedef struct _sai_flow_bulk_get_session_event_data_t
153+
{
154+
/** Flow entry */
155+
sai_flow_entry_t flow_entry;
156+
157+
/** Attributes count */
158+
uint32_t attr_count;
159+
160+
/** Event type */
161+
sai_flow_bulk_get_session_event_t event_type;
162+
163+
/**
164+
* @brief Attributes
165+
*
166+
* @objects SAI_OBJECT_TYPE_FLOW_ENTRY
167+
*/
168+
sai_attribute_t *attr;
169+
170+
} sai_flow_bulk_get_session_event_data_t;
171+
172+
/**
173+
* @brief Flow bulk get session event notification
174+
*
175+
* Passed as a parameter into sai_initialize_switch()
176+
*
177+
* @count data[count]
178+
*
179+
* @param[in] flow_bulk_session_id ID of the flow bulk session
180+
* @param[in] count Number of notifications
181+
* @param[in] data Array of flow bulk get session events
182+
*/
183+
typedef void (*sai_flow_bulk_get_session_event_notification_fn)(
184+
_In_ sai_object_id_t flow_bulk_session_id,
185+
_In_ uint32_t count,
186+
_In_ const sai_flow_bulk_get_session_event_data_t *data);
187+
134188
/**
135189
* @brief SAI switch attribute extensions.
136190
*
@@ -191,6 +245,17 @@ typedef enum _sai_switch_attr_extensions_t
191245
*/
192246
SAI_SWITCH_ATTR_HA_SCOPE_EVENT_NOTIFY,
193247

248+
/**
249+
* @brief DASH flow bulk get session event notification
250+
*
251+
* Use sai_flow_bulk_get_session_event_notification_fn as notification function.
252+
*
253+
* @type sai_pointer_t sai_flow_bulk_get_session_event_notification_fn
254+
* @flags CREATE_AND_SET
255+
* @default NULL
256+
*/
257+
SAI_SWITCH_ATTR_FLOW_BULK_GET_SESSION_EVENT_NOTIFY,
258+
194259
SAI_SWITCH_ATTR_EXTENSIONS_RANGE_END
195260

196261
} sai_switch_attr_extensions_t;

0 commit comments

Comments
 (0)