@@ -664,6 +664,26 @@ def migrate_device_metadata(self):
664
664
metadata ['synchronous_mode' ] = device_metadata_data .get ("synchronous_mode" )
665
665
self .configDB .set_entry ('DEVICE_METADATA' , 'localhost' , metadata )
666
666
667
+ def migrate_ipinip_tunnel (self ):
668
+ """Migrate TUNNEL_DECAP_TABLE to add decap terms with TUNNEL_DECAP_TERM_TABLE."""
669
+ tunnel_decap_table = self .appDB .get_table ('TUNNEL_DECAP_TABLE' )
670
+ app_db_separator = self .appDB .get_db_separator (self .appDB .APPL_DB )
671
+ for key , attrs in tunnel_decap_table .items ():
672
+ dst_ip = attrs .pop ("dst_ip" , None )
673
+ src_ip = attrs .pop ("src_ip" , None )
674
+ if dst_ip :
675
+ dst_ips = dst_ip .split ("," )
676
+ for dip in dst_ips :
677
+ decap_term_table_key = app_db_separator .join (["TUNNEL_DECAP_TERM_TABLE" , key , dip ])
678
+ if src_ip :
679
+ self .appDB .set (self .appDB .APPL_DB , decap_term_table_key , "src_ip" , src_ip )
680
+ self .appDB .set (self .appDB .APPL_DB , decap_term_table_key , "term_type" , "P2P" )
681
+ else :
682
+ self .appDB .set (self .appDB .APPL_DB , decap_term_table_key , "term_type" , "P2MP" )
683
+
684
+ if dst_ip or src_ip :
685
+ self .appDB .set_entry ("TUNNEL_DECAP_TABLE" , key , attrs )
686
+
667
687
def migrate_port_qos_map_global (self ):
668
688
"""
669
689
Generate dscp_to_tc_map for switch.
@@ -1232,6 +1252,15 @@ def version_202405_01(self):
1232
1252
Version 202405_01.
1233
1253
"""
1234
1254
log .log_info ('Handling version_202405_01' )
1255
+ self .set_version ('version_202405_02' )
1256
+ return 'version_202405_02'
1257
+
1258
+ def version_202405_02 (self ):
1259
+ """
1260
+ Version 202405_02.
1261
+ """
1262
+ log .log_info ('Handling version_202405_02' )
1263
+ self .migrate_ipinip_tunnel ()
1235
1264
self .set_version ('version_202411_01' )
1236
1265
return 'version_202411_01'
1237
1266
0 commit comments