@@ -49,6 +49,21 @@ def test_appliance(self, dash_db: DashDB):
49
49
self .sip = "10.0.0.1"
50
50
self .vm_vni = "4321"
51
51
self .local_region_id = "10"
52
+
53
+ # verify behavior when outbound_direction_lookup is specified
54
+ pb = Appliance ()
55
+ pb .sip .ipv4 = socket .htonl (int (ipaddress .ip_address (self .sip )))
56
+ pb .vm_vni = int (self .vm_vni )
57
+ pb .local_region_id = int (self .local_region_id )
58
+ pb .outbound_direction_lookup = "dst_mac"
59
+ dash_db .create_appliance (self .appliance_id , {"pb" : pb .SerializeToString ()})
60
+ direction_keys = dash_db .wait_for_asic_db_keys (ASIC_DIRECTION_LOOKUP_TABLE )
61
+ dl_attrs = dash_db .get_asic_db_entry (ASIC_DIRECTION_LOOKUP_TABLE , direction_keys [0 ])
62
+ assert_sai_attribute_exists ("SAI_DIRECTION_LOOKUP_ENTRY_ATTR_ACTION" , dl_attrs , "SAI_DIRECTION_LOOKUP_ENTRY_ACTION_SET_OUTBOUND_DIRECTION" )
63
+ assert_sai_attribute_exists ("SAI_DIRECTION_LOOKUP_ENTRY_ATTR_DASH_ENI_MAC_OVERRIDE_TYPE" , dl_attrs , "SAI_DASH_ENI_MAC_OVERRIDE_TYPE_DST_MAC" )
64
+ dash_db .remove_appliance (self .appliance_id )
65
+ time .sleep (2 )
66
+
52
67
pb = Appliance ()
53
68
pb .sip .ipv4 = socket .htonl (int (ipaddress .ip_address (self .sip )))
54
69
pb .vm_vni = int (self .vm_vni )
@@ -62,7 +77,8 @@ def test_appliance(self, dash_db: DashDB):
62
77
direction_keys = dash_db .wait_for_asic_db_keys (ASIC_DIRECTION_LOOKUP_TABLE )
63
78
dl_attrs = dash_db .get_asic_db_entry (ASIC_DIRECTION_LOOKUP_TABLE , direction_keys [0 ])
64
79
assert_sai_attribute_exists ("SAI_DIRECTION_LOOKUP_ENTRY_ATTR_ACTION" , dl_attrs , "SAI_DIRECTION_LOOKUP_ENTRY_ACTION_SET_OUTBOUND_DIRECTION" )
65
- assert_sai_attribute_exists ("SAI_DIRECTION_LOOKUP_ENTRY_ATTR_DASH_ENI_MAC_OVERRIDE_TYPE" , dl_attrs , "SAI_DASH_ENI_MAC_OVERRIDE_TYPE_DST_MAC" )
80
+ # When outbound_direction_lookup is not specified, src mac is used by default
81
+ assert_sai_attribute_exists ("SAI_DIRECTION_LOOKUP_ENTRY_ATTR_DASH_ENI_MAC_OVERRIDE_TYPE" , dl_attrs , "SAI_DASH_ENI_MAC_OVERRIDE_TYPE_SRC_MAC" )
66
82
67
83
vip_keys = dash_db .wait_for_asic_db_keys (ASIC_VIP_TABLE )
68
84
vip_attrs = dash_db .get_asic_db_entry (ASIC_VIP_TABLE , vip_keys [0 ])
0 commit comments