@@ -20,6 +20,38 @@ extern sai_next_hop_api_t* sai_next_hop_api;
2020extern RouteOrch *gRouteOrch ;
2121extern CrmOrch *gCrmOrch ;
2222
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+
2355void Srv6Orch::srv6TunnelUpdateNexthops (const string srv6_source, const NextHopKey nhkey, bool insert)
2456{
2557 if (insert)
@@ -372,62 +404,18 @@ bool Srv6Orch::mySidExists(string my_sid_string)
372404bool Srv6Orch::sidEntryEndpointBehavior (string action, sai_my_sid_entry_endpoint_behavior_t &end_behavior,
373405 sai_my_sid_entry_endpoint_behavior_flavor_t &end_flavor)
374406{
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 ())
403408 {
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 ;
425411 }
426- else
412+ end_behavior = end_behavior_map.at (action);
413+
414+ if (end_flavor_map.find (action) != end_flavor_map.end ())
427415 {
428- SWSS_LOG_ERROR (" Invalid endpoing behavior function" );
429- return false ;
416+ end_flavor = end_flavor_map.at (action);
430417 }
418+
431419 return true ;
432420}
433421
0 commit comments