Skip to content

Commit b2d9374

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 <[email protected]>
1 parent 754ca66 commit b2d9374

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

experimental/saiswitchextensions.h

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,65 @@ 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+
/**
161+
* @brief Event type
162+
*
163+
* If event_type is SAI_FLOW_BULK_GET_SESSION_EVENT_FINISHED, attr is NULL, flow_entry is invalid.
164+
* If event_type is SAI_FLOW_BULK_GET_SESSION_EVENT_FLOW_ENTRY, attr is not NULL.
165+
*/
166+
sai_flow_bulk_get_session_event_t event_type;
167+
168+
/**
169+
* @brief Attributes
170+
*
171+
* @objects SAI_OBJECT_TYPE_FLOW_ENTRY
172+
*/
173+
sai_attribute_t *attr;
174+
175+
} sai_flow_bulk_get_session_event_data_t;
176+
177+
/**
178+
* @brief Flow bulk get session event notification
179+
*
180+
* Passed as a parameter into sai_initialize_switch()
181+
*
182+
* @count data[count]
183+
*
184+
* @param[in] flow_bulk_session_id ID of the flow bulk session
185+
* @param[in] count Number of notifications
186+
* @param[in] data Array of flow bulk get session events
187+
*/
188+
typedef void (*sai_flow_bulk_get_session_event_notification_fn)(
189+
_In_ sai_object_id_t flow_bulk_session_id,
190+
_In_ uint32_t count,
191+
_In_ const sai_flow_bulk_get_session_event_data_t *data);
192+
134193
/**
135194
* @brief SAI switch attribute extensions.
136195
*
@@ -191,6 +250,17 @@ typedef enum _sai_switch_attr_extensions_t
191250
*/
192251
SAI_SWITCH_ATTR_HA_SCOPE_EVENT_NOTIFY,
193252

253+
/**
254+
* @brief DASH flow bulk get session event notification
255+
*
256+
* Use sai_flow_bulk_get_session_event_notification_fn as notification function.
257+
*
258+
* @type sai_pointer_t sai_flow_bulk_get_session_event_notification_fn
259+
* @flags CREATE_AND_SET
260+
* @default NULL
261+
*/
262+
SAI_SWITCH_ATTR_FLOW_BULK_GET_SESSION_EVENT_NOTIFY,
263+
194264
SAI_SWITCH_ATTR_EXTENSIONS_RANGE_END
195265

196266
} sai_switch_attr_extensions_t;

0 commit comments

Comments
 (0)