@@ -20,6 +20,38 @@ extern sai_next_hop_api_t* sai_next_hop_api;
20
20
extern RouteOrch *gRouteOrch ;
21
21
extern CrmOrch *gCrmOrch ;
22
22
23
+ const map<string, sai_my_sid_entry_endpoint_behavior_t > end_behavior_map =
24
+ {
25
+ {" end" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_E},
26
+ {" end.x" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_X},
27
+ {" end.t" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_T},
28
+ {" end.dx6" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX6},
29
+ {" end.dx4" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX4},
30
+ {" end.dt4" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT4},
31
+ {" end.dt6" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT6},
32
+ {" end.dt46" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT46},
33
+ {" end.b6.encaps" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS},
34
+ {" end.b6.encaps.red" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS_RED},
35
+ {" end.b6.insert" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT},
36
+ {" end.b6.insert.red" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT_RED},
37
+ {" udx6" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX6},
38
+ {" udx4" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX4},
39
+ {" udt6" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT6},
40
+ {" udt4" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT4},
41
+ {" udt46" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT46},
42
+ {" un" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UN},
43
+ {" ua" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UA}
44
+ };
45
+
46
+ const map<string, sai_my_sid_entry_endpoint_behavior_flavor_t > end_flavor_map =
47
+ {
48
+ {" end" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD},
49
+ {" end.x" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD},
50
+ {" end.t" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD},
51
+ {" un" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD},
52
+ {" ua" , SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD}
53
+ };
54
+
23
55
void Srv6Orch::srv6TunnelUpdateNexthops (const string srv6_source, const NextHopKey nhkey, bool insert)
24
56
{
25
57
if (insert)
@@ -372,62 +404,18 @@ bool Srv6Orch::mySidExists(string my_sid_string)
372
404
bool Srv6Orch::sidEntryEndpointBehavior (string action, sai_my_sid_entry_endpoint_behavior_t &end_behavior,
373
405
sai_my_sid_entry_endpoint_behavior_flavor_t &end_flavor)
374
406
{
375
- if (action == " end" )
376
- {
377
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_E;
378
- end_flavor = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD;
379
- }
380
- else if (action == " end.x" )
381
- {
382
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_X;
383
- end_flavor = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD;
384
- }
385
- else if (action == " end.t" )
386
- {
387
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_T;
388
- end_flavor = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD;
389
- }
390
- else if (action == " end.dx6" )
391
- {
392
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX6;
393
- }
394
- else if (action == " end.dx4" )
395
- {
396
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX4;
397
- }
398
- else if (action == " end.dt4" )
399
- {
400
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT4;
401
- }
402
- else if (action == " end.dt6" )
407
+ if (end_behavior_map.find (action) == end_behavior_map.end ())
403
408
{
404
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT6;
405
- }
406
- else if (action == " end.dt46" )
407
- {
408
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT46;
409
- }
410
- else if (action == " end.b6.encaps" )
411
- {
412
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS;
413
- }
414
- else if (action == " end.b6.encaps.red" )
415
- {
416
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS_RED;
417
- }
418
- else if (action == " end.b6.insert" )
419
- {
420
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT;
421
- }
422
- else if (action == " end.b6.insert.red" )
423
- {
424
- end_behavior = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT_RED;
409
+ SWSS_LOG_ERROR (" Invalid endpoint behavior function" );
410
+ return false ;
425
411
}
426
- else
412
+ end_behavior = end_behavior_map.at (action);
413
+
414
+ if (end_flavor_map.find (action) != end_flavor_map.end ())
427
415
{
428
- SWSS_LOG_ERROR (" Invalid endpoing behavior function" );
429
- return false ;
416
+ end_flavor = end_flavor_map.at (action);
430
417
}
418
+
431
419
return true ;
432
420
}
433
421
0 commit comments