Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions orchagent/orchdaemon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1248,7 +1248,7 @@ bool DpuOrchDaemon::init()
APP_DASH_VNET_TABLE_NAME,
APP_DASH_VNET_MAPPING_TABLE_NAME
};
DashVnetOrch *dash_vnet_orch = new DashVnetOrch(m_applDb, dash_vnet_tables, m_dpu_appstateDb, dash_zmq_server);
DashVnetOrch *dash_vnet_orch = new DashVnetOrch(m_dpu_appDb, dash_vnet_tables, m_dpu_appstateDb, dash_zmq_server);
gDirectory.set(dash_vnet_orch);

vector<string> dash_tables = {
Expand All @@ -1259,7 +1259,7 @@ bool DpuOrchDaemon::init()
APP_DASH_QOS_TABLE_NAME
};

DashOrch *dash_orch = new DashOrch(m_applDb, dash_tables, m_dpu_appstateDb, dash_zmq_server);
DashOrch *dash_orch = new DashOrch(m_dpu_appDb, dash_tables, m_dpu_appstateDb, dash_zmq_server);
gDirectory.set(dash_orch);

vector<string> dash_ha_tables = {
Expand All @@ -1277,7 +1277,7 @@ bool DpuOrchDaemon::init()
APP_DASH_ROUTE_GROUP_TABLE_NAME
};

DashRouteOrch *dash_route_orch = new DashRouteOrch(m_applDb, dash_route_tables, dash_orch, m_dpu_appstateDb, dash_zmq_server);
DashRouteOrch *dash_route_orch = new DashRouteOrch(m_dpu_appDb, dash_route_tables, dash_orch, m_dpu_appstateDb, dash_zmq_server);
gDirectory.set(dash_route_orch);

vector<string> dash_acl_tables = {
Expand All @@ -1287,27 +1287,27 @@ bool DpuOrchDaemon::init()
APP_DASH_ACL_GROUP_TABLE_NAME,
APP_DASH_ACL_RULE_TABLE_NAME
};
DashAclOrch *dash_acl_orch = new DashAclOrch(m_applDb, dash_acl_tables, dash_orch, m_dpu_appstateDb, dash_zmq_server);
DashAclOrch *dash_acl_orch = new DashAclOrch(m_dpu_appDb, dash_acl_tables, dash_orch, m_dpu_appstateDb, dash_zmq_server);
gDirectory.set(dash_acl_orch);

vector<string> dash_tunnel_tables = {
APP_DASH_TUNNEL_TABLE_NAME
};
DashTunnelOrch *dash_tunnel_orch = new DashTunnelOrch(m_applDb, dash_tunnel_tables, m_dpu_appstateDb, dash_zmq_server);
DashTunnelOrch *dash_tunnel_orch = new DashTunnelOrch(m_dpu_appDb, dash_tunnel_tables, m_dpu_appstateDb, dash_zmq_server);
gDirectory.set(dash_tunnel_orch);

vector<string> dash_meter_tables = {
APP_DASH_METER_POLICY_TABLE_NAME,
APP_DASH_METER_RULE_TABLE_NAME
};
DashMeterOrch *dash_meter_orch = new DashMeterOrch(m_applDb, dash_meter_tables, dash_orch, m_dpu_appstateDb, dash_zmq_server);
DashMeterOrch *dash_meter_orch = new DashMeterOrch(m_dpu_appDb, dash_meter_tables, dash_orch, m_dpu_appstateDb, dash_zmq_server);
gDirectory.set(dash_meter_orch);

vector<string> dash_port_map_tables = {
APP_DASH_OUTBOUND_PORT_MAP_TABLE_NAME,
APP_DASH_OUTBOUND_PORT_MAP_RANGE_TABLE_NAME
};
DashPortMapOrch *dash_port_map_orch = new DashPortMapOrch(m_applDb, dash_port_map_tables, m_dpu_appstateDb, dash_zmq_server);
DashPortMapOrch *dash_port_map_orch = new DashPortMapOrch(m_dpu_appDb, dash_port_map_tables, m_dpu_appstateDb, dash_zmq_server);
gDirectory.set(dash_port_map_orch);

addOrchList(dash_acl_orch);
Expand Down
21 changes: 21 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@ class DockerVirtualSwitch:
CONFIG_DB_ID = 4
FLEX_COUNTER_DB_ID = 5
STATE_DB_ID = 6
DPU_APPL_DB_ID = 15

# FIXME: Should be broken up into helper methods in a later PR.
def __init__(
Expand Down Expand Up @@ -444,6 +445,7 @@ def create_servers(self):
def reset_dbs(self):
# DB wrappers are declared here, lazy-loaded in the tests
self.app_db = None
self.dpu_app_db = None
self.asic_db = None
self.counters_db = None
self.config_db = None
Expand Down Expand Up @@ -519,6 +521,7 @@ def check_ready_status_and_init_db(self) -> None:
# Initialize the databases.
self.init_asic_db_validator()
self.init_appl_db_validator()
self.init_dpu_appl_db_validator()
self.reset_dbs()

# Verify that SWSS has finished initializing.
Expand Down Expand Up @@ -562,6 +565,9 @@ def init_asic_db_validator(self) -> None:
def init_appl_db_validator(self) -> None:
self.appldb = ApplDbValidator(self.APPL_DB_ID, self.redis_sock)

def init_dpu_appl_db_validator(self) -> None:
self.dpu_appldb = ApplDbValidator(self.DPU_APPL_DB_ID, self.redis_sock)

def check_swss_ready(self, timeout: int = 300) -> None:
"""Verify that SWSS is ready to receive inputs.

Expand Down Expand Up @@ -784,6 +790,14 @@ def SubscribeAppDbObject(self, objpfx):
pubsub.psubscribe("__keyspace@0__:%s*" % objpfx)
return pubsub

# deps: warm_reboot
def SubscribeDpuAppDbObject(self, objpfx):
r = redis.Redis(unix_socket_path=self.redis_sock, db=swsscommon.DPU_APPL_DB,
encoding="utf-8", decode_responses=True)
pubsub = r.pubsub()
pubsub.psubscribe("__keyspace@0__:%s*" % objpfx)
return pubsub

# deps: warm_reboot
def SubscribeAsicDbObject(self, objpfx):
r = redis.Redis(unix_socket_path=self.redis_sock, db=swsscommon.ASIC_DB,
Expand Down Expand Up @@ -1242,6 +1256,7 @@ def remove_fdb(self, vlan, mac):
# policer, port_dpb_vlan, vlan
def setup_db(self):
self.pdb = swsscommon.DBConnector(swsscommon.APPL_DB, self.redis_sock, 0)
self.ddb = swsscommon.DBConnector(swsscommon.DPU_APPL_DB, self.redis_sock, 0)
self.adb = swsscommon.DBConnector(swsscommon.ASIC_DB, self.redis_sock, 0)
self.cdb = swsscommon.DBConnector(swsscommon.CONFIG_DB, self.redis_sock, 0)
self.sdb = swsscommon.DBConnector(swsscommon.STATE_DB, self.redis_sock, 0)
Expand Down Expand Up @@ -1436,6 +1451,12 @@ def get_app_db(self) -> ApplDbValidator:

return self.app_db

def get_dpu_app_db(self) -> ApplDbValidator:
if not self.dpu_app_db:
self.dpu_app_db = DVSDatabase(self.DPU_APPL_DB_ID, self.redis_sock)

return self.dpu_app_db

# FIXME: Now that AsicDbValidator is using DVSDatabase we should converge this with
# that implementation. Save it for a follow-up PR.
def get_asic_db(self) -> AsicDbValidator:
Expand Down
2 changes: 1 addition & 1 deletion tests/create_appliance.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def to_string(value):
return str(value)

# connect to Dash ZMQ endpoint
db_connection = swsscommon.DBConnector("APPL_DB", 0)
db_connection = swsscommon.DBConnector("DPU_APPL_DB", 0)
zmq_client = swsscommon.ZmqClient("tcp://127.0.0.1:8100")
app_dash_appliance_table = swsscommon.ZmqProducerStateTable(
db_connection,
Expand Down
28 changes: 14 additions & 14 deletions tests/dash/dash_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,12 +138,12 @@ def set_app_db_entry(self, table_name, *args):
else:
pb_string = value

table = ProducerStateTable(self.dvs.get_app_db().db_connection, table_name)
table = ProducerStateTable(self.dvs.get_dpu_app_db().db_connection, table_name)
table[key] = {'pb': pb_string}

def remove_app_db_entry(self, table_name, *key_parts):
key = ":".join(key_parts)
table = ProducerStateTable(self.dvs.get_app_db().db_connection, table_name)
table = ProducerStateTable(self.dvs.get_dpu_app_db().db_connection, table_name)
del table[key]

def get_asic_db_entry(self, table_name, key):
Expand Down Expand Up @@ -204,7 +204,7 @@ def get_attr_to_sai_object_map(self, table_name, attribute):
return attr_to_sai_object_map

def get_app_db_keys(self, table_name):
table = Table(self.dvs.get_app_db().db_connection, table_name)
table = Table(self.dvs.get_dpu_app_db().db_connection, table_name)
return table.get_keys()

def get_asic_db_keys(self, table_name):
Expand All @@ -214,27 +214,27 @@ def get_asic_db_keys(self, table_name):
def __init__(self, dvs):
self.dvs = dvs
self.app_dash_routing_type_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_ROUTING_TYPE_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_ROUTING_TYPE_TABLE")
self.app_dash_appliance_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_APPLIANCE_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_APPLIANCE_TABLE")
self.app_dash_vnet_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_VNET_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_VNET_TABLE")
self.app_dash_eni_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_ENI_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_ENI_TABLE")
self.app_dash_vnet_map_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_VNET_MAPPING_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_VNET_MAPPING_TABLE")
self.app_dash_route_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_ROUTE_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_ROUTE_TABLE")
self.app_dash_route_rule_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_ROUTE_RULE_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_ROUTE_RULE_TABLE")
self.app_dash_eni_route_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_ENI_ROUTE_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_ENI_ROUTE_TABLE")
self.app_dash_route_group_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_ROUTE_GROUP_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_ROUTE_GROUP_TABLE")
self.app_dash_meter_policy_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_METER_POLICY_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_METER_POLICY_TABLE")
self.app_dash_meter_rule_table = ProducerStateTable(
self.dvs.get_app_db().db_connection, "DASH_METER_RULE_TABLE")
self.dvs.get_dpu_app_db().db_connection, "DASH_METER_RULE_TABLE")

self.asic_dash_appliance_table = Table(
self.dvs.get_asic_db().db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_DASH_APPLIANCE")
Expand Down
2 changes: 1 addition & 1 deletion tests/dash/test_dash_acl.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ def __init__(self, dvs):

for table in APPL_DB_TABLE_LIST:
pst = ProduceStateTable(
self.dvs.get_app_db(), table
self.dvs.get_dpu_app_db(), table
)
table_variable_name = "app_{}".format(table.lower())
# Based on swsscommon convention for table names, assume
Expand Down
Loading