Uniform metadata keys.

This commit makes all metadata keys follow similar formatting: all lowercase, with spaces (as opposed to underlines or other conventions).
This commit is contained in:
Anton Ottosson
2021-07-17 17:23:54 +02:00
committed by Bastian Bloessl
parent e620d48c81
commit 24f72aaf08
3 changed files with 64 additions and 64 deletions
+1 -1
View File
@@ -78,7 +78,7 @@ public:
d_meta = pmt::dict_add(d_meta, tag.key, tag.value); d_meta = pmt::dict_add(d_meta, tag.key, tag.value);
int len_data = pmt::to_uint64(pmt::dict_ref( int len_data = pmt::to_uint64(pmt::dict_ref(
d_meta, pmt::mp("frame_bytes"), pmt::from_uint64(MAX_PSDU_SIZE + 1))); d_meta, pmt::mp("frame bytes"), pmt::from_uint64(MAX_PSDU_SIZE + 1)));
int encoding = pmt::to_uint64( int encoding = pmt::to_uint64(
pmt::dict_ref(d_meta, pmt::mp("encoding"), pmt::from_uint64(0))); pmt::dict_ref(d_meta, pmt::mp("encoding"), pmt::from_uint64(0)));
+3 -3
View File
@@ -219,14 +219,14 @@ int frame_equalizer_impl::general_work(int noutput_items,
pmt::pmt_t dict = pmt::make_dict(); pmt::pmt_t dict = pmt::make_dict();
dict = pmt::dict_add( dict = pmt::dict_add(
dict, pmt::mp("frame_bytes"), pmt::from_uint64(d_frame_bytes)); dict, pmt::mp("frame bytes"), pmt::from_uint64(d_frame_bytes));
dict = pmt::dict_add( dict = pmt::dict_add(
dict, pmt::mp("encoding"), pmt::from_uint64(d_frame_encoding)); dict, pmt::mp("encoding"), pmt::from_uint64(d_frame_encoding));
dict = pmt::dict_add( dict = pmt::dict_add(
dict, pmt::mp("snr"), pmt::from_double(d_equalizer->get_snr())); dict, pmt::mp("snr"), pmt::from_double(d_equalizer->get_snr()));
dict = pmt::dict_add(dict, pmt::mp("nom_freq"), pmt::from_double(d_freq)); dict = pmt::dict_add(dict, pmt::mp("nominal frequency"), pmt::from_double(d_freq));
dict = pmt::dict_add(dict, dict = pmt::dict_add(dict,
pmt::mp("freq_offset"), pmt::mp("frequency offset"),
pmt::from_double(d_freq_offset_from_synclong)); pmt::from_double(d_freq_offset_from_synclong));
dict = pmt::dict_add(dict, pmt::mp("beta"), pmt::from_double(beta)); dict = pmt::dict_add(dict, pmt::mp("beta"), pmt::from_double(beta));
+60 -60
View File
@@ -71,7 +71,7 @@ public:
return; return;
} }
d_meta = pmt::dict_add(d_meta, pmt::mp("Duration"), pmt::mp(h->duration)); d_meta = pmt::dict_add(d_meta, pmt::mp("duration"), pmt::mp(h->duration));
#define HEX(a) std::hex << std::setfill('0') << std::setw(2) << int(a) << std::dec #define HEX(a) std::hex << std::setfill('0') << std::setw(2) << int(a) << std::dec
dout << "duration: " << HEX(h->duration >> 8) << " " << HEX(h->duration & 0xff) dout << "duration: " << HEX(h->duration >> 8) << " " << HEX(h->duration & 0xff)
@@ -82,24 +82,24 @@ public:
switch ((h->frame_control >> 2) & 3) { switch ((h->frame_control >> 2) & 3) {
case 0: case 0:
d_meta = pmt::dict_add(d_meta, pmt::mp("Type"), pmt::mp("Management")); d_meta = pmt::dict_add(d_meta, pmt::mp("type"), pmt::mp("management"));
dout << " (MANAGEMENT)" << std::endl; dout << " (MANAGEMENT)" << std::endl;
parse_management((char*)h, frame_len); parse_management((char*)h, frame_len);
break; break;
case 1: case 1:
d_meta = pmt::dict_add(d_meta, pmt::mp("Type"), pmt::mp("Control")); d_meta = pmt::dict_add(d_meta, pmt::mp("type"), pmt::mp("Control"));
dout << " (CONTROL)" << std::endl; dout << " (CONTROL)" << std::endl;
parse_control((char*)h, frame_len); parse_control((char*)h, frame_len);
break; break;
case 2: case 2:
d_meta = pmt::dict_add(d_meta, pmt::mp("Type"), pmt::mp("Data")); d_meta = pmt::dict_add(d_meta, pmt::mp("type"), pmt::mp("Data"));
dout << " (DATA)" << std::endl; dout << " (DATA)" << std::endl;
parse_data((char*)h, frame_len); parse_data((char*)h, frame_len);
break; break;
default: default:
d_meta = pmt::dict_add(d_meta, pmt::mp("Type"), pmt::mp("Unknown")); d_meta = pmt::dict_add(d_meta, pmt::mp("type"), pmt::mp("Unknown"));
dout << " (unknown)" << std::endl; dout << " (unknown)" << std::endl;
break; break;
} }
@@ -130,43 +130,43 @@ public:
switch (((h->frame_control) >> 4) & 0xf) { switch (((h->frame_control) >> 4) & 0xf) {
case 0: case 0:
d_meta = d_meta =
pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Association Request")); pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Association Request"));
dout << "Association Request"; dout << "Association Request";
break; break;
case 1: case 1:
d_meta = pmt::dict_add( d_meta = pmt::dict_add(
d_meta, pmt::mp("Subtype"), pmt::mp("Association Response")); d_meta, pmt::mp("subtype"), pmt::mp("Association Response"));
dout << "Association Response"; dout << "Association Response";
break; break;
case 2: case 2:
d_meta = pmt::dict_add( d_meta = pmt::dict_add(
d_meta, pmt::mp("Subtype"), pmt::mp("Reassociation Request")); d_meta, pmt::mp("subtype"), pmt::mp("Reassociation Request"));
dout << "Reassociation Request"; dout << "Reassociation Request";
break; break;
case 3: case 3:
d_meta = pmt::dict_add( d_meta = pmt::dict_add(
d_meta, pmt::mp("Subtype"), pmt::mp("Reassociation Response")); d_meta, pmt::mp("subtype"), pmt::mp("Reassociation Response"));
dout << "Reassociation Response"; dout << "Reassociation Response";
break; break;
case 4: case 4:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Probe Request")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Probe Request"));
dout << "Probe Request"; dout << "Probe Request";
break; break;
case 5: case 5:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Probe Response")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Probe Response"));
dout << "Probe Response"; dout << "Probe Response";
break; break;
case 6: case 6:
d_meta = pmt::dict_add( d_meta = pmt::dict_add(
d_meta, pmt::mp("Subtype"), pmt::mp("Timing Advertisement")); d_meta, pmt::mp("subtype"), pmt::mp("Timing Advertisement"));
dout << "Timing Advertisement"; dout << "Timing Advertisement";
break; break;
case 7: case 7:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Reserved")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Reserved"));
dout << "Reserved"; dout << "Reserved";
break; break;
case 8: case 8:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Beacon")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Beacon"));
dout << "Beacon" << std::endl; dout << "Beacon" << std::endl;
if (length < 38) { if (length < 38) {
return; return;
@@ -177,37 +177,37 @@ public:
return; return;
} }
std::string s(buf + 24 + 14, *len); std::string s(buf + 24 + 14, *len);
d_meta = pmt::dict_add(d_meta, pmt::mp("SSID"), pmt::mp(s)); d_meta = pmt::dict_add(d_meta, pmt::mp("ssid"), pmt::mp(s));
dout << "SSID: " << s; dout << "SSID: " << s;
} }
break; break;
case 9: case 9:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("ATIM")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("ATIM"));
dout << "ATIM"; dout << "ATIM";
break; break;
case 10: case 10:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Disassociation")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Disassociation"));
dout << "Disassociation"; dout << "Disassociation";
break; break;
case 11: case 11:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Authentication")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Authentication"));
dout << "Authentication"; dout << "Authentication";
break; break;
case 12: case 12:
d_meta = d_meta =
pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Deauthentication")); pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Deauthentication"));
dout << "Deauthentication"; dout << "Deauthentication";
break; break;
case 13: case 13:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Action")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Action"));
dout << "Action"; dout << "Action";
break; break;
case 14: case 14:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Action No Ack")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Action No Ack"));
dout << "Action No Ack"; dout << "Action No Ack";
break; break;
case 15: case 15:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Reserved")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Reserved"));
dout << "Reserved"; dout << "Reserved";
break; break;
default: default:
@@ -216,19 +216,19 @@ public:
dout << std::endl; dout << std::endl;
int seq_no = int(h->seq_nr >> 4); int seq_no = int(h->seq_nr >> 4);
d_meta = pmt::dict_add(d_meta, pmt::mp("Sequence number"), pmt::mp(seq_no)); d_meta = pmt::dict_add(d_meta, pmt::mp("sequence number"), pmt::mp(seq_no));
dout << "seq nr: " << seq_no << std::endl; dout << "seq nr: " << seq_no << std::endl;
auto address = format_mac_address(h->addr1); auto address = format_mac_address(h->addr1);
d_meta = pmt::dict_add(d_meta, pmt::mp("Address 1"), pmt::mp(address)); d_meta = pmt::dict_add(d_meta, pmt::mp("address 1"), pmt::mp(address));
dout << "address 1: " << address << std::endl; dout << "address 1: " << address << std::endl;
address = format_mac_address(h->addr2); address = format_mac_address(h->addr2);
d_meta = pmt::dict_add(d_meta, pmt::mp("Address 2"), pmt::mp(address)); d_meta = pmt::dict_add(d_meta, pmt::mp("address 2"), pmt::mp(address));
dout << "address 2: " << address << std::endl; dout << "address 2: " << address << std::endl;
address = format_mac_address(h->addr3); address = format_mac_address(h->addr3);
d_meta = pmt::dict_add(d_meta, pmt::mp("Address 3"), pmt::mp(address)); d_meta = pmt::dict_add(d_meta, pmt::mp("address 3"), pmt::mp(address));
dout << "address 3: " << address << std::endl; dout << "address 3: " << address << std::endl;
} }
@@ -244,73 +244,73 @@ public:
dout << "Subtype: "; dout << "Subtype: ";
switch (((h->frame_control) >> 4) & 0xf) { switch (((h->frame_control) >> 4) & 0xf) {
case 0: case 0:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Data")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Data"));
dout << "Data"; dout << "Data";
break; break;
case 1: case 1:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Data + CF-ACK")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Data + CF-ACK"));
dout << "Data + CF-ACK"; dout << "Data + CF-ACK";
break; break;
case 2: case 2:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Data + CR-Poll")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Data + CR-Poll"));
dout << "Data + CR-Poll"; dout << "Data + CR-Poll";
break; break;
case 3: case 3:
d_meta = pmt::dict_add( d_meta = pmt::dict_add(
d_meta, pmt::mp("Subtype"), pmt::mp("Data + CF-ACK + CF-Poll")); d_meta, pmt::mp("subtype"), pmt::mp("Data + CF-ACK + CF-Poll"));
dout << "Data + CF-ACK + CF-Poll"; dout << "Data + CF-ACK + CF-Poll";
break; break;
case 4: case 4:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Null")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Null"));
dout << "Null"; dout << "Null";
break; break;
case 5: case 5:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("CF-ACK")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("CF-ACK"));
dout << "CF-ACK"; dout << "CF-ACK";
break; break;
case 6: case 6:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("CF-Poll")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("CF-Poll"));
dout << "CF-Poll"; dout << "CF-Poll";
break; break;
case 7: case 7:
d_meta = d_meta =
pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("CF-ACK + CF-Poll")); pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("CF-ACK + CF-Poll"));
dout << "CF-ACK + CF-Poll"; dout << "CF-ACK + CF-Poll";
break; break;
case 8: case 8:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("QoS Data")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("QoS Data"));
dout << "QoS Data"; dout << "QoS Data";
break; break;
case 9: case 9:
d_meta = d_meta =
pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("QoS Data + CF-ACK")); pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("QoS Data + CF-ACK"));
dout << "QoS Data + CF-ACK"; dout << "QoS Data + CF-ACK";
break; break;
case 10: case 10:
d_meta = d_meta =
pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("QoS Data + CF-Poll")); pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("QoS Data + CF-Poll"));
dout << "QoS Data + CF-Poll"; dout << "QoS Data + CF-Poll";
break; break;
case 11: case 11:
d_meta = pmt::dict_add( d_meta = pmt::dict_add(
d_meta, pmt::mp("Subtype"), pmt::mp("QoS Data + CF-ACK + CF-Poll")); d_meta, pmt::mp("subtype"), pmt::mp("QoS Data + CF-ACK + CF-Poll"));
dout << "QoS Data + CF-ACK + CF-Poll"; dout << "QoS Data + CF-ACK + CF-Poll";
break; break;
case 12: case 12:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("QoS Null")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("QoS Null"));
dout << "QoS Null"; dout << "QoS Null";
break; break;
case 13: case 13:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Reserved")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Reserved"));
dout << "Reserved"; dout << "Reserved";
break; break;
case 14: case 14:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("QoS CF-Poll")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("QoS CF-Poll"));
dout << "QoS CF-Poll"; dout << "QoS CF-Poll";
break; break;
case 15: case 15:
d_meta = pmt::dict_add( d_meta = pmt::dict_add(
d_meta, pmt::mp("Subtype"), pmt::mp("QoS CF-ACK + CF-Poll")); d_meta, pmt::mp("subtype"), pmt::mp("QoS CF-ACK + CF-Poll"));
dout << "QoS CF-ACK + CF-Poll"; dout << "QoS CF-ACK + CF-Poll";
break; break;
default: default:
@@ -320,31 +320,31 @@ public:
int seq_no = int(h->seq_nr >> 4); int seq_no = int(h->seq_nr >> 4);
d_meta = pmt::dict_add(d_meta, pmt::mp("Sequence number"), pmt::mp(seq_no)); d_meta = pmt::dict_add(d_meta, pmt::mp("sequence number"), pmt::mp(seq_no));
dout << "seq nr: " << seq_no << std::endl; dout << "seq nr: " << seq_no << std::endl;
auto address = format_mac_address(h->addr1); auto address = format_mac_address(h->addr1);
d_meta = pmt::dict_add(d_meta, pmt::mp("Address 1"), pmt::mp(address)); d_meta = pmt::dict_add(d_meta, pmt::mp("address 1"), pmt::mp(address));
dout << "address 1: " << address << std::endl; dout << "address 1: " << address << std::endl;
address = format_mac_address(h->addr2); address = format_mac_address(h->addr2);
d_meta = pmt::dict_add(d_meta, pmt::mp("Address 2"), pmt::mp(address)); d_meta = pmt::dict_add(d_meta, pmt::mp("address 2"), pmt::mp(address));
dout << "address 2: " << address << std::endl; dout << "address 2: " << address << std::endl;
address = format_mac_address(h->addr3); address = format_mac_address(h->addr3);
d_meta = pmt::dict_add(d_meta, pmt::mp("Address 3"), pmt::mp(address)); d_meta = pmt::dict_add(d_meta, pmt::mp("address 3"), pmt::mp(address));
dout << "address 3: " << address << std::endl; dout << "address 3: " << address << std::endl;
float lost_frames = seq_no - d_last_seq_no - 1; float lost_frames = seq_no - d_last_seq_no - 1;
if (lost_frames < 0) if (lost_frames < 0)
lost_frames += 1 << 12; lost_frames += 1 << 12;
d_meta = pmt::dict_add(d_meta, pmt::mp("Lost frames"), pmt::mp(lost_frames)); d_meta = pmt::dict_add(d_meta, pmt::mp("lost frames"), pmt::mp(lost_frames));
// calculate frame error rate // calculate frame error rate
float fer = lost_frames / (lost_frames + 1); float fer = lost_frames / (lost_frames + 1);
dout << "instantaneous fer: " << fer << std::endl; dout << "instantaneous fer: " << fer << std::endl;
d_meta = pmt::dict_add(d_meta, pmt::mp("Instantaneous FER"), pmt::mp(fer)); d_meta = pmt::dict_add(d_meta, pmt::mp("instantaneous fer"), pmt::mp(fer));
// keep track of sequence numbers // keep track of sequence numbers
d_last_seq_no = seq_no; d_last_seq_no = seq_no;
@@ -358,45 +358,45 @@ public:
switch (((h->frame_control) >> 4) & 0xf) { switch (((h->frame_control) >> 4) & 0xf) {
case 7: case 7:
d_meta = d_meta =
pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Control Wrapper")); pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Control Wrapper"));
dout << "Control Wrapper"; dout << "Control Wrapper";
break; break;
case 8: case 8:
d_meta = d_meta =
pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Block ACK Request")); pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Block ACK Request"));
dout << "Block ACK Request"; dout << "Block ACK Request";
break; break;
case 9: case 9:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Block ACK")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Block ACK"));
dout << "Block ACK"; dout << "Block ACK";
break; break;
case 10: case 10:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("PS Poll")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("PS Poll"));
dout << "PS Poll"; dout << "PS Poll";
break; break;
case 11: case 11:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("RTS")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("RTS"));
dout << "RTS"; dout << "RTS";
break; break;
case 12: case 12:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("CTS")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("CTS"));
dout << "CTS"; dout << "CTS";
break; break;
case 13: case 13:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("ACK")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("ACK"));
dout << "ACK"; dout << "ACK";
break; break;
case 14: case 14:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("CF-End")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("CF-End"));
dout << "CF-End"; dout << "CF-End";
break; break;
case 15: case 15:
d_meta = d_meta =
pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("CF-End + CF-ACK")); pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("CF-End + CF-ACK"));
dout << "CF-End + CF-ACK"; dout << "CF-End + CF-ACK";
break; break;
default: default:
d_meta = pmt::dict_add(d_meta, pmt::mp("Subtype"), pmt::mp("Reserved")); d_meta = pmt::dict_add(d_meta, pmt::mp("subtype"), pmt::mp("Reserved"));
dout << "Reserved"; dout << "Reserved";
break; break;
} }
@@ -404,11 +404,11 @@ public:
auto address = format_mac_address(h->addr1); auto address = format_mac_address(h->addr1);
d_meta = pmt::dict_add(d_meta, pmt::mp("RA"), pmt::mp(address)); d_meta = pmt::dict_add(d_meta, pmt::mp("ra"), pmt::mp(address));
dout << "RA: " << address << std::endl; dout << "RA: " << address << std::endl;
address = format_mac_address(h->addr2); address = format_mac_address(h->addr2);
d_meta = pmt::dict_add(d_meta, pmt::mp("TA"), pmt::mp(address)); d_meta = pmt::dict_add(d_meta, pmt::mp("ta"), pmt::mp(address));
dout << "TA: " << address << std::endl; dout << "TA: " << address << std::endl;
} }