#undef dout_prefix
#define dout_prefix *_dout << "nvmeofgw " << __PRETTY_FUNCTION__ << " "
-void NVMeofGwMap::encode(ceph::buffer::list &bl, uint64_t features) const {
- using ceph::encode;
- uint8_t version = 1;
- if (HAVE_FEATURE(features, NVMEOFHAMAP)) {
- version = 2;
- }
- if (HAVE_FEATURE(features, NVMEOF_BEACON_DIFF)) {
- version = 3;
- }
- ENCODE_START(version, version, bl);
- encode(epoch, bl);// global map epoch
-
- encode(created_gws, bl, features); //Encode created GWs
- encode(fsm_timers, bl, features);
- if (version >= 2) {
- encode(gw_epoch, bl);
- }
- if (version >=3) {
- encode(disaster_locations, bl);
- }
- ENCODE_FINISH(bl);
- }
-
- void NVMeofGwMap::decode(ceph::buffer::list::const_iterator &bl) {
- using ceph::decode;
- DECODE_START(3, bl);
-
- decode(epoch, bl);
- decode(created_gws, bl);
- decode(fsm_timers, bl);
- if (struct_v >= 2) {
- decode(gw_epoch, bl);
- }
- if (struct_v >=3) {
- decode(disaster_locations, bl);
- }
- DECODE_FINISH(bl);
- }
-
void NVMeofGwMap::to_gmap(
std::map<NvmeGroupKey, NvmeGwMonClientStates>& Gmap) const
{
#include "NVMeofGwTypes.h"
using ceph::coarse_mono_clock;
-
+#define dout_context g_ceph_context
+#define dout_subsys ceph_subsys_mon
+#undef dout_prefix
+#define MODULE_PREFFIX "nvmeofgw "
+#define dout_prefix *_dout << MODULE_PREFFIX << __PRETTY_FUNCTION__ << " "
class health_check_map_t;
class Monitor;
const NvmeGwId &gw_id, const NvmeGroupKey& group_key,
NvmeAnaGrpId ANA_groupid, epoch_t &epoch, bool failover);
- void encode(ceph::buffer::list &bl, uint64_t features) const ;
+ void encode(ceph::buffer::list &bl, uint64_t features) const {
+ using ceph::encode;
+ uint8_t version = 1;
+ if (HAVE_FEATURE(features, NVMEOFHAMAP)) {
+ version = 2;
+ }
+ if (HAVE_FEATURE(features, NVMEOF_BEACON_DIFF)) {
+ version = 3;
+ }
+ ENCODE_START(version, version, bl);
+ encode(epoch, bl);// global map epoch
+
+ encode(created_gws, bl, features); //Encode created GWs
+ encode(fsm_timers, bl, features);
+ if (version >= 2) {
+ encode(gw_epoch, bl);
+ }
+ if (version >=3) {
+ encode(disaster_locations, bl);
+ }
+ ENCODE_FINISH(bl);
+ }
+
+ void decode(ceph::buffer::list::const_iterator &bl) {
+ using ceph::decode;
+ DECODE_START(3, bl);
+
+ decode(epoch, bl);
+ dout(20) << "decode epoch " << dendl;
+ decode(created_gws, bl);
+ dout(20) << "decode created gws " << dendl;
+ decode(fsm_timers, bl);
+ dout(20) << "decode fsm timers " << dendl;
+ if (struct_v >= 2) {
+ decode(gw_epoch, bl);
+ dout(20) << "decode gw epoch " << dendl;
+ }
+ if (struct_v >=3) {
+ decode(disaster_locations, bl);
+ dout(20) << "decode disaster location " << dendl;
+ }
+ DECODE_FINISH(bl);
+ }
- void decode(ceph::buffer::list::const_iterator &bl);
void get_health_checks(health_check_map_t *checks);
};
if (HAVE_FEATURE(features, NVMEOF_BEACON_DIFF)) {
version = 2;
}
- // For legacy encoding, skip deleted subsystems to maintain compatibility
- if (version == 1 &&
- sub.change_descriptor != subsystem_change_t::SUBSYSTEM_ADDED) {
- dout(4) << "encode BeaconSubsystem: skipping subsystem " << sub.nqn
- << " with change_descriptor " << (int)sub.change_descriptor
- << " in legacy mode" << dendl;
- return; // Skip encoding this subsystem entirely
- }
ENCODE_START(version, version, bl);
encode(sub.nqn, bl);
uint32_t s;
sub.listeners.clear();
decode(s, bl);
+ dout(20) << "decode Nlisteners " << s << dendl;
for (uint32_t i = 0; i < s; i++) {
BeaconListener ls;
decode(ls, bl);