Blame Esm/ib/src/smi/include/sm_dbsync.h

Packit 857059
/* BEGIN_ICS_COPYRIGHT2 ****************************************
Packit 857059
Packit 857059
Copyright (c) 2015-2017, Intel Corporation
Packit 857059
Packit 857059
Redistribution and use in source and binary forms, with or without
Packit 857059
modification, are permitted provided that the following conditions are met:
Packit 857059
Packit 857059
    * Redistributions of source code must retain the above copyright notice,
Packit 857059
      this list of conditions and the following disclaimer.
Packit 857059
    * Redistributions in binary form must reproduce the above copyright
Packit 857059
      notice, this list of conditions and the following disclaimer in the
Packit 857059
      documentation and/or other materials provided with the distribution.
Packit 857059
    * Neither the name of Intel Corporation nor the names of its contributors
Packit 857059
      may be used to endorse or promote products derived from this software
Packit 857059
      without specific prior written permission.
Packit 857059
Packit 857059
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Packit 857059
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Packit 857059
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Packit 857059
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
Packit 857059
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Packit 857059
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Packit 857059
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Packit 857059
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Packit 857059
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit 857059
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit 857059
Packit 857059
** END_ICS_COPYRIGHT2   ****************************************/
Packit 857059
Packit 857059
/* [ICS VERSION STRING: unknown] */
Packit 857059
Packit 857059
//===========================================================================//
Packit 857059
//
Packit 857059
// FILE NAME
Packit 857059
//    sm_dbsync.h
Packit 857059
//
Packit 857059
// DESCRIPTION
Packit 857059
//    This file contains the localized SM data base synchronization definitions.
Packit 857059
//
Packit 857059
// DATA STRUCTURES
Packit 857059
//    NONE
Packit 857059
//
Packit 857059
// FUNCTIONS
Packit 857059
//    NONE
Packit 857059
//
Packit 857059
// DEPENDENCIES
Packit 857059
//    ib_types.h
Packit 857059
//    ib_mad.h
Packit 857059
//    ib_status.h
Packit 857059
//
Packit 857059
//
Packit 857059
//===========================================================================//
Packit 857059
#ifndef	_SM_DBSYNC_H_
Packit 857059
#define	_SM_DBSYNC_H_
Packit 857059
Packit 857059
#include "os_g.h"
Packit 857059
#include "sm_parallelsweep.h"
Packit 857059
Packit 857059
//
Packit 857059
// SM DBSYNC structure conversion routines
Packit 857059
//
Packit 857059
#define SMDBSYNC_NSIZE 84
Packit 857059
#define SMDBSYNC_CCC_NSIZE 56
Packit 857059
#define SMDBSYNC_SEND_FILE_NSIZE 100
Packit 857059
Packit 857059
#define SM_DBSYNC_VERSION   		1
Packit 857059
#define SM_DBSYNC_UNKNOWN   		0xffffffff
Packit 857059
Packit 857059
typedef enum {
Packit 857059
    DBSYNC_AID_SYNC = 1,
Packit 857059
    DBSYNC_AID_GROUP,
Packit 857059
    DBSYNC_AID_SERVICE,
Packit 857059
    DBSYNC_AID_INFORM,
Packit 857059
    DBSYNC_AID_MCROOT,
Packit 857059
    DBSYNC_AID_DATELINE
Packit 857059
} DBSyncAid_t;              /* Attribute ID (or cmd) to send */
Packit 857059
Packit 857059
typedef enum {
Packit 857059
    DBSYNC_AMOD_GET = 1,    /* get the contents of a dataset */
Packit 857059
    DBSYNC_AMOD_SET,        /* replace entire dataset with input */
Packit 857059
    DBSYNC_AMOD_ADD,        /* add (or update existing) a record to the dataset */
Packit 857059
    DBSYNC_AMOD_DELETE,     /* delete a record from the dataset */
Packit 857059
    DBSYNC_AMOD_GET_CCC,    /* get the config consistency check data */
Packit 857059
    DBSYNC_AMOD_SEND_FILE,  /* send a file to standby SM */
Packit 857059
    DBSYNC_AMOD_RECONFIG    /* request standby SM read local config file */
Packit 857059
} DBSyncAmod_t;             /* modifier to AID (cmd) to send */
Packit 857059
Packit 857059
typedef enum { 
Packit 857059
    DBSYNC_CAP_UNKNOWN = 0,
Packit 857059
    DBSYNC_CAP_ASKING,
Packit 857059
    DBSYNC_CAP_NOTSUPPORTED, 
Packit 857059
    DBSYNC_CAP_SUPPORTED 
Packit 857059
} DBSyncCap_t;
Packit 857059
Packit 857059
typedef enum { 
Packit 857059
    DBSYNC_STAT_UNINITIALIZED = 0, 
Packit 857059
    DBSYNC_STAT_INPROGRESS, 
Packit 857059
    DBSYNC_STAT_SYNCHRONIZED, 
Packit 857059
    DBSYNC_STAT_FAILURE
Packit 857059
} DBSyncStat_t;
Packit 857059
Packit 857059
typedef enum {
Packit 857059
    DBSYNC_TYPE_GET_CAPABILITY = 1,
Packit 857059
    DBSYNC_TYPE_FULL, 
Packit 857059
    DBSYNC_TYPE_UPDATE,
Packit 857059
    DBSYNC_TYPE_DELETE,
Packit 857059
	DBSYNC_TYPE_BROADCAST_FILE,
Packit 857059
	DBSYNC_TYPE_RECONFIG
Packit 857059
} DBSyncType_t;
Packit 857059
Packit 857059
typedef enum {
Packit 857059
    DBSYNC_DATATYPE_NONE,
Packit 857059
    DBSYNC_DATATYPE_ALL, 
Packit 857059
    DBSYNC_DATATYPE_INFORM, 
Packit 857059
    DBSYNC_DATATYPE_GROUP, 
Packit 857059
    DBSYNC_DATATYPE_SERVICE,
Packit 857059
    DBSYNC_DATATYPE_MCROOT,
Packit 857059
	DBSYNC_DATATYPE_FILE,
Packit 857059
	DBSYNC_DATATYPE_DATELINE_GUID
Packit 857059
} DBSyncDatTyp_t;
Packit 857059
Packit 857059
/*
Packit 857059
 * Fabric SM's hash table
Packit 857059
 */
Packit 857059
 typedef struct {
Packit 857059
     CS_HashTablep  smMap;          /* pointer to hash map of SM's currently in fabric */
Packit 857059
	 SMDBCCCSync_t  ourChecksums;
Packit 857059
     Lock_t         smLock;         /* exclusive lock for when manipulating hash table */
Packit 857059
 } SmTable_t;
Packit 857059
Packit 857059
 typedef struct {
Packit 857059
     DBSyncStat_t    syncStatus;     /* 0=un-initialized, 1=in progress, 2=synchronized, 3=failure */
Packit 857059
     uint32_t        syncFailCount;  /* count of consecutive sync attempt failures */
Packit 857059
     time_t          timeSyncFail;   /* time of last sync attempt failure */
Packit 857059
     time_t          timeLastSync;   /* time of last scheduled sync - 0 if never sync'd */
Packit 857059
 } SmSyncStat_t;
Packit 857059
typedef SmSyncStat_t *SmSyncStatp;     /* pointer to sync status structure */
Packit 857059
Packit 857059
typedef struct {
Packit 857059
	uint8   firstUpdateState;                // present state
Packit 857059
} PmDbSync_t;
Packit 857059
typedef PmDbSync_t *PmDbSyncp;
Packit 857059
Packit 857059
#define DBSYNC_MAX_GET_CAP_ATTEMPTS 2  /* try the GET a few times before saying dbsync not supported by SM */
Packit 857059
#define DBSYNC_MAX_FAIL_SYNC_ATTEMPTS 3  /* try to sync a few times before giving up */
Packit 857059
#define DBSYNC_TIME_BETWEEN_SYNC_FAILURES 60    /* retry interval if were in failure status */
Packit 857059
Packit 857059
typedef struct {
Packit 857059
    uint64_t        portguid;       /* port guid of SM node (used as hash key) */
Packit 857059
    STL_LID         lid;            /* lid of SM - may not be set yet */
Packit 857059
    DBSyncCap_t     syncCapability; /* 0=unknown, 1=not supported, 2=supported */
Packit 857059
Packit 857059
    SMDBSync_t      dbsync;         /* db sync data of SM node */
Packit 857059
    SMDBCCCSync_t   dbsyncCCC;      /* db sync CCC data of SM node */
Packit 857059
	PmDbSync_t		pmdbsync;		/* db sync data of the PM node */
Packit 857059
	uint8_t			configDiff;		/* is the config different from master */
Packit 857059
    STL_SMINFO_RECORD  smInfoRec;      /* smInfoRecs of SM instance */
Packit 857059
    uint8_t			nodeDescString[ND_LEN+1]; /* node description of SM node */
Packit 857059
    uint8_t         path[64];       /* directed path to SM node */
Packit 857059
	uint8_t			portNumber;		/* port Number of remote node - used only for reporting */
Packit 857059
	uint8_t			isEmbedded;		/* 1: SM is embedded */
Packit 857059
	uint64_t		lastHello;		/* if standby, last hello check */
Packit 857059
} SmRec_t;
Packit 857059
typedef SmRec_t     *SmRecp;        /* sm record pointer type */
Packit 857059
typedef uint64_t    SmRecKey_t;     /* sm record key type */
Packit 857059
typedef SmRecKey_t  *SmRecKeyp;     /* pointer to sm record key */
Packit 857059
Packit 857059
/* FIXME PR123899 - convert felib to STL sized MADs. */
Packit 857059
typedef uint8_t     SMSyncData_t[200];  /* opaque holder of data to sync */
Packit 857059
Packit 857059
typedef struct {
Packit 857059
    DBSyncType_t    type;           /* 1=get capability, 2=full sync, 3=update, 4=delete */
Packit 857059
    DBSyncDatTyp_t  datatype;       /* 1=all (full sync only), 2=InformInfo, 3=groups, 4=services */
Packit 857059
    uint64_t        portguid;       /* portguid of standby SM */
Packit 857059
    STL_LID         standbyLid;     /* lid of the standby SM */
Packit 857059
	uint8_t			isEmbedded;		/* 1: standby SM is embedded */
Packit 857059
    SMSyncData_t    data;           /* opaque data buffer to hold specific sync data */
Packit 857059
}SMSyncReq_t;
Packit 857059
typedef SMSyncReq_t *SMSyncReqp;    /* Sm Sync Request pointer type */
Packit 857059
Packit 857059
//
Packit 857059
// Multicast dbsync structure
Packit 857059
//
Packit 857059
Packit 857059
typedef	struct {
Packit 857059
	uint8_t			mGid[16];
Packit 857059
	uint32_t		members_full;
Packit 857059
	uint32_t		qKey;
Packit 857059
	uint16_t		pKey;
Packit 857059
	STL_LID			mLid;
Packit 857059
	uint8_t			mtu;
Packit 857059
	uint8_t			rate;
Packit 857059
	uint8_t			life;
Packit 857059
	uint8_t			sl;
Packit 857059
	uint32_t		flowLabel;
Packit 857059
	uint8_t			hopLimit;
Packit 857059
	uint8_t			tClass;
Packit 857059
	uint8_t			scope;
Packit 857059
    uint8_t         filler;
Packit 857059
    uint16_t        membercount;
Packit 857059
	uint32_t		index_pool; /* Next index to use for new Mc Member records */
Packit 857059
} McGroupSync_t;
Packit 857059
Packit 857059
//**********  SM topology asynchronous send receive response queue **********
Packit 857059
extern  cs_Queue_ptr sm_dbsync_queue;
Packit 857059
#define SM_DBSYNC_QUEUE_SIZE  128
Packit 857059
Packit 857059
/* SM table */
Packit 857059
extern SmTable_t   smRecords;
Packit 857059
extern int dbsync_main_exit;                /* dbsync thread exit flag */
Packit 857059
extern int dbsync_initialized_flag;         /* dbsync initialized indicator */
Packit 857059
Packit 857059
static __inline
Packit 857059
void
Packit 857059
BSWAPCOPY_SM_DBSYNC_DATA(SMDBSyncp Src, SMDBSyncp Dest)
Packit 857059
{
Packit 857059
	memcpy(Dest, Src, sizeof(*Src));
Packit 857059
Packit 857059
    Dest->version = ntoh32(Dest->version);
Packit 857059
    Dest->fullSyncStatus = ntoh32(Dest->fullSyncStatus);
Packit 857059
    Dest->fullSyncFailCount = ntoh32(Dest->fullSyncFailCount);
Packit 857059
    Dest->fullTimeSyncFail = ntoh32(Dest->fullTimeSyncFail);
Packit 857059
    Dest->fullTimeLastSync = ntoh32(Dest->fullTimeLastSync);
Packit 857059
    Dest->informSyncStatus = ntoh32(Dest->informSyncStatus);
Packit 857059
    Dest->informSyncFailCount = ntoh32(Dest->informSyncFailCount);
Packit 857059
    Dest->informTimeSyncFail = ntoh32(Dest->informTimeSyncFail);
Packit 857059
    Dest->informTimeLastSync = ntoh32(Dest->informTimeLastSync);
Packit 857059
Packit 857059
    Dest->groupSyncStatus = ntoh32(Dest->groupSyncStatus);
Packit 857059
    Dest->groupSyncFailCount = ntoh32(Dest->groupSyncFailCount);
Packit 857059
    Dest->groupTimeSyncFail = ntoh32(Dest->groupTimeSyncFail);
Packit 857059
    Dest->groupTimeLastSync = ntoh32(Dest->groupTimeLastSync);
Packit 857059
Packit 857059
    Dest->serviceSyncStatus = ntoh32(Dest->serviceSyncStatus);
Packit 857059
    Dest->serviceSyncFailCount = ntoh32(Dest->serviceSyncFailCount);
Packit 857059
    Dest->serviceTimeSyncFail = ntoh32(Dest->serviceTimeSyncFail);
Packit 857059
    Dest->serviceTimeLastSync = ntoh32(Dest->serviceTimeLastSync);
Packit 857059
Packit 857059
	Dest->mcrootSyncStatus = ntoh32(Dest->mcrootSyncStatus);
Packit 857059
    Dest->mcrootSyncFailCount = ntoh32(Dest->mcrootSyncFailCount);
Packit 857059
    Dest->mcrootTimeSyncFail = ntoh32(Dest->mcrootTimeSyncFail);
Packit 857059
    Dest->mcrootTimeLastSync = ntoh32(Dest->mcrootTimeLastSync);
Packit 857059
Packit 857059
    Dest->datelineGuidSyncStatus = ntoh32(Dest->datelineGuidSyncStatus);
Packit 857059
    Dest->datelineGuidSyncFailCount = ntoh32(Dest->datelineGuidSyncFailCount);
Packit 857059
    Dest->datelineGuidTimeSyncFail = ntoh32(Dest->datelineGuidTimeSyncFail);
Packit 857059
    Dest->datelineGuidTimeLastSync = ntoh32(Dest->datelineGuidTimeLastSync);
Packit 857059
}
Packit 857059
Packit 857059
static __inline
Packit 857059
void
Packit 857059
BSWAPCOPY_SM_DBSYNC_CCC_DATA(SMDBCCCSyncp Src, SMDBCCCSyncp Dest)
Packit 857059
{
Packit 857059
	memcpy(Dest, Src, sizeof(*Src));
Packit 857059
Packit 857059
    Dest->protocolVersion = ntoh32(Dest->protocolVersion);
Packit 857059
    Dest->smVfChecksum = ntoh32(Dest->smVfChecksum);
Packit 857059
    Dest->smConfigChecksum = ntoh32(Dest->smConfigChecksum);
Packit 857059
    Dest->pmConfigChecksum = ntoh32(Dest->pmConfigChecksum);
Packit 857059
    Dest->emConfigChecksum = ntoh32(Dest->emConfigChecksum);
Packit 857059
Packit 857059
    Dest->spare1 = ntoh32(Dest->spare1);
Packit 857059
    Dest->spare2 = ntoh32(Dest->spare2);
Packit 857059
    Dest->spare3 = ntoh32(Dest->spare3);
Packit 857059
    Dest->spare4 = ntoh32(Dest->spare4);
Packit 857059
    Dest->spare5 = ntoh32(Dest->spare5);
Packit 857059
    Dest->spare6 = ntoh32(Dest->spare6);
Packit 857059
    Dest->spare7 = ntoh32(Dest->spare7);
Packit 857059
}
Packit 857059
Packit 857059
static __inline
Packit 857059
void
Packit 857059
BSWAPCOPY_SM_DBSYNC_FILE_DATA(SMDBSyncFilep Src, SMDBSyncFilep Dest)
Packit 857059
{
Packit 857059
	memcpy(Dest, Src, sizeof(*Src));
Packit 857059
Packit 857059
    Dest->version = ntoh32(Dest->version);
Packit 857059
    Dest->length = ntoh32(Dest->length);
Packit 857059
    Dest->activate = ntoh32(Dest->activate);
Packit 857059
    Dest->type = ntoh32(Dest->type);
Packit 857059
    Dest->size = ntoh32(Dest->size);
Packit 857059
    Dest->spare1 = ntoh32(Dest->spare1);
Packit 857059
    Dest->spare2 = ntoh32(Dest->spare2);
Packit 857059
    Dest->spare3 = ntoh32(Dest->spare3);
Packit 857059
    Dest->spare4 = ntoh32(Dest->spare4);
Packit 857059
}
Packit 857059
Packit 857059
static __inline
Packit 857059
void
Packit 857059
BSWAPCOPY_SM_DBSYNC_SUBSKEY_DATA(SubscriberKeyp Src, SubscriberKeyp Dest)
Packit 857059
{
Packit 857059
	memcpy(Dest, Src, sizeof(*Src));
Packit 857059
Packit 857059
    Dest->lid = ntoh32(Dest->lid);
Packit 857059
    Dest->trapnum = ntoh16(Dest->trapnum);
Packit 857059
    Dest->qpn = ntoh32(Dest->qpn);
Packit 857059
    Dest->pkey = ntoh16(Dest->pkey);
Packit 857059
    Dest->qkey = ntoh32(Dest->qkey);
Packit 857059
    Dest->startLid = ntoh32(Dest->startLid);
Packit 857059
    Dest->endLid = ntoh32(Dest->endLid);
Packit 857059
}
Packit 857059
Packit 857059
static __inline
Packit 857059
void
Packit 857059
BSWAPCOPY_SM_DBSYNC_MC_GROUP_DATA(McGroupSync_t *Src, McGroupSync_t *Dest)
Packit 857059
{
Packit 857059
	memcpy(Dest, Src, sizeof(*Src));
Packit 857059
Packit 857059
    Dest->members_full = ntoh32(Dest->members_full);
Packit 857059
    Dest->qKey = ntoh32(Dest->qKey);
Packit 857059
    Dest->pKey = ntoh16(Dest->pKey);
Packit 857059
    Dest->mLid = ntoh32(Dest->mLid);
Packit 857059
    Dest->flowLabel = ntoh32(Dest->flowLabel);
Packit 857059
    Dest->membercount = ntoh16(Dest->membercount);
Packit 857059
    Dest->index_pool = ntoh32(Dest->index_pool);
Packit 857059
}
Packit 857059
Packit 857059
static __inline
Packit 857059
void
Packit 857059
BSWAPCOPY_SM_DBSYNC_RECORD_CNT(uint32_t *Src, uint32_t *Dest)
Packit 857059
{
Packit 857059
    memcpy(Dest, Src, sizeof(*Src));
Packit 857059
Packit 857059
    *Dest = ntoh32(*Dest);
Packit 857059
}
Packit 857059
Packit 857059
/*
Packit 857059
 *  Sm dbsync prototypes
Packit 857059
*/
Packit 857059
void		sm_dbsync(uint32_t, uint8_t **);    /* sm db sync main function */
Packit 857059
Status_t    sm_dbsync_filter_add(IBhandle_t fd, Filter_t *filter, uint8_t mclass, 
Packit 857059
                                 uint8_t method, uint16_t aid, uint32_t amod, uint64_t tid, const char *subRoutine);
Packit 857059
void        sm_dbsync_queueMsg(DBSyncType_t syncType, DBSyncDatTyp_t syncDataTye, STL_LID lid, Guid_t portguid, uint8_t isEmbedded, SMSyncData_t);
Packit 857059
void        sm_dbsync_addSm(Node_t *, Port_t *, STL_SMINFO_RECORD *);
Packit 857059
void        sm_dbsync_deleteSm(uint64_t);
Packit 857059
void        sm_dbsync_updateSm(SmRecKey_t, STL_SM_INFO *);
Packit 857059
Status_t    sm_dbsync_fullSyncCheck(SmRecKey_t);
Packit 857059
Status_t    sm_dbsync_upSmDbsync(SmRecKey_t, SMDBSyncp);
Packit 857059
Status_t    sm_dbsync_upSmDbsyncCap(SmRecKey_t, DBSyncCap_t);
Packit 857059
Status_t    sm_dbsync_upSmDbsyncStat(SmRecKey_t, DBSyncDatTyp_t, DBSyncStat_t);
Packit 857059
Status_t	sm_dbsync_configCheck(SmRecKey_t, SMDBCCCSyncp);
Packit 857059
Status_t    sm_dbsync_disableStandbySm(SmRecp, SmCsmMsgCondition_t);
Packit 857059
DBSyncStat_t sm_dbsync_getSmDbsyncStat(SmRecKey_t);
Packit 857059
Status_t    sm_dbsync_getSmDbsync(SmRecKey_t, SMDBSyncp);
Packit 857059
boolean     sm_dbsync_isUpToDate(SmRecKey_t, char **reason);
Packit 857059
DBSyncCap_t sm_dbsync_getDbsyncSupport(SmRecKey_t);
Packit 857059
Status_t    sm_dbsync_checksums(uint32_t vfCsum, uint32_t smCsum, uint32_t pmCsum);
Packit 857059
Status_t    sm_dbsync_em_checksums(uint32_t emCsum);
Packit 857059
Status_t    sm_dbsync_recInit(void);
Packit 857059
void        sm_dbsync_kill(void);
Packit 857059
void        sm_dbsync_init(void);
Packit 857059
void        sm_dbsync_recDelete(void);
Packit 857059
void        sm_dbsync_recClear(void);
Packit 857059
void        sm_dbsync_procReq(void);
Packit 857059
int         sm_dbsync_getSmCount(void);
Packit 857059
int         sm_dbsync_getActiveSmCount(void);
Packit 857059
Status_t    sm_dbsync_upsmlist(SweepContext_t *);
Packit 857059
Status_t    sm_dbsync_syncService(DBSyncType_t, OpaServiceRecordp);
Packit 857059
Status_t    sm_dbsync_syncInform(DBSyncType_t, SubscriberKeyp, STL_INFORM_INFO_RECORD *);
Packit 857059
Status_t    sm_dbsync_syncGroup(DBSyncType_t, IB_GID*);
Packit 857059
Status_t	sm_dbsync_syncMCRoot(DBSyncType_t synctype);
Packit 857059
Status_t	sm_dbsync_syncFile(DBSyncType_t synctype, SMDBSyncFile_t*);
Packit 857059
Status_t	sm_dbsync_syncDatelineSwitchGUID(DBSyncType_t);
Packit 857059
void        sm_dbsync_showSms(void);
Packit 857059
void		sm_dbsync_standbyHello(SmRecKey_t);
Packit 857059
void		sm_dbsync_standbyCheck(void);
Packit 857059
int 		sm_send_pm_image(uint64_t portguid, uint32_t histindex, char *histImgFile);
Packit 857059
int			sm_send_pm_image_complete(uint64_t portguid, Status_t status);
Packit 857059
#endif	// _SM_DBSYNC_H_