diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt
index 7e4c03f..160940b 100644
--- a/grc/CMakeLists.txt
+++ b/grc/CMakeLists.txt
@@ -1,3 +1,3 @@
-file(GLOB xml_files "*.xml")
+file(GLOB xml_files "*.block.yml")
install(FILES ${xml_files} DESTINATION share/gnuradio/grc/blocks )
diff --git a/grc/ieee802_11_chunks_to_symbols.block.yml b/grc/ieee802_11_chunks_to_symbols.block.yml
new file mode 100644
index 0000000..19b54ee
--- /dev/null
+++ b/grc/ieee802_11_chunks_to_symbols.block.yml
@@ -0,0 +1,21 @@
+# auto-generated by grc.converter
+
+id: ieee802_11_chunks_to_symbols_xx
+label: Chunks to Symbols
+category: '[IEEE802.11]'
+
+inputs:
+- domain: stream
+ dtype: byte
+ multiplicity: '1'
+
+outputs:
+- domain: stream
+ dtype: complex
+ multiplicity: '1'
+
+templates:
+ imports: import ieee802_11
+ make: ieee802_11.chunks_to_symbols()
+
+file_format: 1
diff --git a/grc/ieee802_11_chunks_to_symbols.xml b/grc/ieee802_11_chunks_to_symbols.xml
deleted file mode 100644
index 87a1539..0000000
--- a/grc/ieee802_11_chunks_to_symbols.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
- Chunks to Symbols
- ieee802_11_chunks_to_symbols_xx
- [IEEE802.11]
- import ieee802_11
- ieee802_11.chunks_to_symbols()
-
- in
- byte
- 1
-
-
- out
- complex
- 1
-
-
diff --git a/grc/ieee802_11_decode_mac.block.yml b/grc/ieee802_11_decode_mac.block.yml
new file mode 100644
index 0000000..e38d585
--- /dev/null
+++ b/grc/ieee802_11_decode_mac.block.yml
@@ -0,0 +1,35 @@
+# auto-generated by grc.converter
+
+id: ieee802_11_decode_mac
+label: WiFi Decode MAC
+category: '[IEEE802.11]'
+
+parameters:
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 48
+
+outputs:
+- domain: message
+ id: out
+ optional: true
+
+templates:
+ imports: import ieee802_11
+ make: ieee802_11.decode_mac(${log}, ${debug})
+
+file_format: 1
diff --git a/grc/ieee802_11_decode_mac.xml b/grc/ieee802_11_decode_mac.xml
deleted file mode 100644
index fe527db..0000000
--- a/grc/ieee802_11_decode_mac.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
- WiFi Decode MAC
- ieee802_11_decode_mac
- [IEEE802.11]
- import ieee802_11
- ieee802_11.decode_mac($log, $debug)
-
-
- Log
- log
- False
- bool
-
-
-
-
-
-
- Debug
- debug
- False
- bool
-
-
-
-
-
-
- in
- byte
- 48
-
-
-
- out
- message
- 1
-
-
-
-
-
-
diff --git a/grc/ieee802_11_ether_encap.block.yml b/grc/ieee802_11_ether_encap.block.yml
new file mode 100644
index 0000000..fff392c
--- /dev/null
+++ b/grc/ieee802_11_ether_encap.block.yml
@@ -0,0 +1,35 @@
+# auto-generated by grc.converter
+
+id: ieee802_11_ether_encap
+label: Ethernet Encapsulation
+category: '[IEEE802.11]'
+
+parameters:
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+
+inputs:
+- domain: message
+ id: from tap
+ optional: true
+- domain: message
+ id: from wifi
+ optional: true
+
+outputs:
+- domain: message
+ id: to tap
+ optional: true
+- domain: message
+ id: to wifi
+ optional: true
+
+templates:
+ imports: import ieee802_11
+ make: ieee802_11.ether_encap(${debug})
+
+file_format: 1
diff --git a/grc/ieee802_11_ether_encap.xml b/grc/ieee802_11_ether_encap.xml
deleted file mode 100644
index 913ffdc..0000000
--- a/grc/ieee802_11_ether_encap.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
- Ethernet Encapsulation
- ieee802_11_ether_encap
- [IEEE802.11]
- import ieee802_11
- ieee802_11.ether_encap($debug)
-
-
- Debug
- debug
- False
- bool
-
-
-
-
-
-
- from tap
- message
- 1
-
-
-
- from wifi
- message
- 1
-
-
-
- to tap
- message
- 1
-
-
-
- to wifi
- message
- 1
-
-
-
diff --git a/grc/ieee802_11_frame_equalizer.block.yml b/grc/ieee802_11_frame_equalizer.block.yml
new file mode 100644
index 0000000..a834a58
--- /dev/null
+++ b/grc/ieee802_11_frame_equalizer.block.yml
@@ -0,0 +1,58 @@
+# auto-generated by grc.converter
+
+id: ieee802_11_frame_equalizer
+label: WiFi Frame Equalizer
+category: '[IEEE802.11]'
+
+parameters:
+- id: algo
+ label: Algorithm
+ dtype: int
+ default: ieee802_11.LS
+ options: [ieee802_11.LS, ieee802_11.LMS, ieee802_11.COMB, ieee802_11.STA]
+ option_labels: [LS, LMS, Comb, STA]
+- id: freq
+ label: Frequency
+ dtype: real
+ default: 5.89e9
+- id: bw
+ label: Bandwidth
+ dtype: real
+ default: 10e6
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+
+inputs:
+- domain: stream
+ dtype: complex
+ vlen: 64
+ multiplicity: '1'
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 48
+ multiplicity: '1'
+- domain: message
+ id: symbols
+ optional: true
+
+templates:
+ imports: import ieee802_11
+ make: ieee802_11.frame_equalizer(${algo}, ${freq}, ${bw}, ${log}, ${debug})
+ callbacks:
+ - set_algorithm(${algo})
+ - set_frequency(${freq})
+ - set_bandwidth(${bw})
+
+file_format: 1
diff --git a/grc/ieee802_11_frame_equalizer.xml b/grc/ieee802_11_frame_equalizer.xml
deleted file mode 100644
index e95f309..0000000
--- a/grc/ieee802_11_frame_equalizer.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
- WiFi Frame Equalizer
- ieee802_11_frame_equalizer
- [IEEE802.11]
- import ieee802_11
- ieee802_11.frame_equalizer($algo, $freq, $bw, $log, $debug)
- set_algorithm($algo)
- set_frequency($freq)
- set_bandwidth($bw)
-
-
- Algorithm
- algo
- ieee802_11.LS
- int
-
-
-
-
-
-
-
-
- Frequency
- freq
- 5.89e9
- real
-
-
-
- Bandwidth
- bw
- 10e6
- real
-
-
-
- Log
- log
- False
- bool
-
-
-
-
-
-
- Debug
- debug
- False
- bool
-
-
-
-
-
-
- in
- complex
- 64
- 1
-
-
-
- out
- byte
- 48
- 1
-
-
-
- symbols
- message
- 1
-
-
-
-
-
diff --git a/grc/ieee802_11_mac.block.yml b/grc/ieee802_11_mac.block.yml
new file mode 100644
index 0000000..ac05356
--- /dev/null
+++ b/grc/ieee802_11_mac.block.yml
@@ -0,0 +1,48 @@
+# auto-generated by grc.converter
+
+id: ieee802_11_mac
+label: WiFi MAC
+category: '[IEEE802.11]'
+
+parameters:
+- id: src_mac
+ label: SRC MAC
+ dtype: int_vector
+ default: '[0x23, 0x23, 0x23, 0x23, 0x23, 0x23]'
+- id: dst_mac
+ label: DST MAC
+ dtype: int_vector
+ default: '[0x42, 0x42, 0x42, 0x42, 0x42, 0x42]'
+- id: bss_mac
+ label: BSS MAC
+ dtype: int_vector
+ default: '[0xff, 0xff, 0xff, 0xff, 0xff, 0xff]'
+
+inputs:
+- domain: message
+ id: app in
+ optional: true
+- domain: message
+ id: phy in
+ optional: true
+
+outputs:
+- domain: message
+ id: app out
+ optional: true
+- domain: message
+ id: phy out
+ optional: true
+asserts:
+- ${ len(src_mac) == 6 }
+- ${ len(dst_mac) == 6 }
+- ${ len(bss_mac) == 6 }
+- ${ all([x >= 0 and 255 >= x for x in src_mac]) }
+- ${ all([x >= 0 and 255 >= x for x in dst_mac]) }
+- ${ all([x >= 0 and 255 >= x for x in bss_mac]) }
+
+templates:
+ imports: import ieee802_11
+ make: ieee802_11.mac(${src_mac}, ${dst_mac}, ${bss_mac})
+
+file_format: 1
diff --git a/grc/ieee802_11_mac.xml b/grc/ieee802_11_mac.xml
deleted file mode 100644
index f7df698..0000000
--- a/grc/ieee802_11_mac.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
- WiFi MAC
- ieee802_11_mac
- [IEEE802.11]
- import ieee802_11
- ieee802_11.mac($src_mac, $dst_mac, $bss_mac)
-
-
- SRC MAC
- src_mac
- [0x23, 0x23, 0x23, 0x23, 0x23, 0x23]
- int_vector
-
-
-
- DST MAC
- dst_mac
- [0x42, 0x42, 0x42, 0x42, 0x42, 0x42]
- int_vector
-
-
-
- BSS MAC
- bss_mac
- [0xff, 0xff, 0xff, 0xff, 0xff, 0xff]
- int_vector
-
-
- len($src_mac) == 6
- len($dst_mac) == 6
- len($bss_mac) == 6
- all([x >= 0 and 255 >= x for x in $src_mac])
- all([x >= 0 and 255 >= x for x in $dst_mac])
- all([x >= 0 and 255 >= x for x in $bss_mac])
-
-
- app in
- message
- 1
-
-
-
- phy in
- message
- 1
-
-
-
- app out
- message
- 1
-
-
-
- phy out
- message
- 1
-
-
diff --git a/grc/ieee802_11_mapper.block.yml b/grc/ieee802_11_mapper.block.yml
new file mode 100644
index 0000000..a26a214
--- /dev/null
+++ b/grc/ieee802_11_mapper.block.yml
@@ -0,0 +1,40 @@
+# auto-generated by grc.converter
+
+id: ieee802_11_mapper
+label: WiFi Mapper
+category: '[IEEE802.11]'
+
+parameters:
+- id: encoding
+ label: Encoding
+ dtype: int
+ default: ieee802_11.BPSK_1_2
+ options: [ieee802_11.BPSK_1_2, ieee802_11.BPSK_3_4, ieee802_11.QPSK_1_2, ieee802_11.QPSK_3_4,
+ ieee802_11.16QAM_1_2, ieee802_11.16QAM_3_4, ieee802_11.64QAM_2_3, ieee802_11.64QAM_3_4]
+ option_labels: [BPSK 1/2, BPSK 3/4, QPSK 1/2, QPSK 3/4, 16QAM 1/2, 16QAM 3/4,
+ 64QAM 2/3, 64QAM 3/4]
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+
+inputs:
+- domain: message
+ id: in
+
+outputs:
+- domain: stream
+ dtype: byte
+ multiplicity: '1'
+asserts:
+- ${ encoding in range(8) }
+
+templates:
+ imports: import ieee802_11
+ make: ieee802_11.mapper(${encoding}, ${debug})
+ callbacks:
+ - set_encoding(${encoding})
+
+file_format: 1
diff --git a/grc/ieee802_11_mapper.xml b/grc/ieee802_11_mapper.xml
deleted file mode 100644
index 709a4fa..0000000
--- a/grc/ieee802_11_mapper.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
- WiFi Mapper
- ieee802_11_mapper
- [IEEE802.11]
- import ieee802_11
- ieee802_11.mapper($encoding, $debug)
- set_encoding($encoding)
-
-
- Encoding
- encoding
- ieee802_11.BPSK_1_2
- int
-
-
-
-
-
-
-
-
-
-
-
-
- Debug
- debug
- False
- bool
-
-
-
-
-
- $encoding in range(8)
-
-
- in
- message
-
-
-
- out
- byte
- 1
-
-
-
diff --git a/grc/ieee802_11_parse_mac.block.yml b/grc/ieee802_11_parse_mac.block.yml
new file mode 100644
index 0000000..992ec67
--- /dev/null
+++ b/grc/ieee802_11_parse_mac.block.yml
@@ -0,0 +1,34 @@
+# auto-generated by grc.converter
+
+id: ieee802_11_parse_mac
+label: WiFi Parse MAC
+category: '[IEEE802.11]'
+
+parameters:
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+
+inputs:
+- domain: message
+ id: in
+
+outputs:
+- domain: message
+ id: fer
+ optional: true
+
+templates:
+ imports: import ieee802_11
+ make: ieee802_11.parse_mac(${log}, ${debug})
+
+file_format: 1
diff --git a/grc/ieee802_11_parse_mac.xml b/grc/ieee802_11_parse_mac.xml
deleted file mode 100644
index 7626651..0000000
--- a/grc/ieee802_11_parse_mac.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
- WiFi Parse MAC
- ieee802_11_parse_mac
- [IEEE802.11]
- import ieee802_11
- ieee802_11.parse_mac($log, $debug)
-
-
- Log
- log
- False
- bool
-
-
-
-
-
-
- Debug
- debug
- False
- bool
-
-
-
-
-
-
- in
- message
-
-
-
- fer
- message
- 1
-
-
-
-
diff --git a/grc/ieee802_11_sync_long.block.yml b/grc/ieee802_11_sync_long.block.yml
new file mode 100644
index 0000000..fe9f48d
--- /dev/null
+++ b/grc/ieee802_11_sync_long.block.yml
@@ -0,0 +1,45 @@
+# auto-generated by grc.converter
+
+id: ieee802_11_sync_long
+label: WiFi Sync Long
+category: '[IEEE802.11]'
+
+parameters:
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: sync_length
+ label: Sync Length
+ dtype: int
+ default: '240'
+
+inputs:
+- domain: stream
+ dtype: complex
+ multiplicity: '1'
+- label: in delayed
+ domain: stream
+ dtype: complex
+ multiplicity: '1'
+
+outputs:
+- domain: stream
+ dtype: complex
+ multiplicity: '1'
+asserts:
+- ${ sync_length > 0 }
+
+templates:
+ imports: import ieee802_11
+ make: ieee802_11.sync_long(${sync_length}, ${log}, ${debug})
+
+file_format: 1
diff --git a/grc/ieee802_11_sync_long.xml b/grc/ieee802_11_sync_long.xml
deleted file mode 100644
index 6a5db19..0000000
--- a/grc/ieee802_11_sync_long.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
- WiFi Sync Long
- ieee802_11_sync_long
- [IEEE802.11]
- import ieee802_11
- ieee802_11.sync_long($sync_length, $log, $debug)
-
-
- Log
- log
- False
- bool
-
-
-
-
-
-
- Debug
- debug
- False
- bool
-
-
-
-
-
-
- Sync Length
- sync_length
- 240
- int
-
-
- $sync_length > 0
-
-
- in
- complex
- 1
-
-
-
- in delayed
- complex
- 1
-
-
-
- out
- complex
- 1
-
-
-
diff --git a/grc/ieee802_11_sync_short.block.yml b/grc/ieee802_11_sync_short.block.yml
new file mode 100644
index 0000000..daea6ff
--- /dev/null
+++ b/grc/ieee802_11_sync_short.block.yml
@@ -0,0 +1,54 @@
+# auto-generated by grc.converter
+
+id: ieee802_11_sync_short
+label: WiFi Sync Short
+category: '[IEEE802.11]'
+
+parameters:
+- id: log
+ label: Log
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: threshold
+ label: Threshold
+ dtype: real
+ default: '0.8'
+- id: min_plateau
+ label: Min Plateau
+ dtype: int
+ default: '2'
+
+inputs:
+- domain: stream
+ dtype: complex
+ multiplicity: '1'
+- label: abs
+ domain: stream
+ dtype: complex
+ multiplicity: '1'
+- label: cor
+ domain: stream
+ dtype: float
+ multiplicity: '1'
+
+outputs:
+- domain: stream
+ dtype: complex
+ multiplicity: '1'
+asserts:
+- ${ threshold > 0 }
+- ${ min_plateau > 0 }
+
+templates:
+ imports: import ieee802_11
+ make: ieee802_11.sync_short(${threshold}, ${min_plateau}, ${log}, ${debug})
+
+file_format: 1
diff --git a/grc/ieee802_11_sync_short.xml b/grc/ieee802_11_sync_short.xml
deleted file mode 100644
index 94271ee..0000000
--- a/grc/ieee802_11_sync_short.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
- WiFi Sync Short
- ieee802_11_sync_short
- [IEEE802.11]
- import ieee802_11
- ieee802_11.sync_short($threshold, $min_plateau, $log, $debug)
-
-
- Log
- log
- False
- bool
-
-
-
-
-
-
- Debug
- debug
- False
- bool
-
-
-
-
-
-
- Threshold
- threshold
- 0.8
- real
-
-
-
- Min Plateau
- min_plateau
- 2
- int
-
-
- $threshold > 0
- $min_plateau > 0
-
-
- in
- complex
- 1
-
-
-
- abs
- complex
- 1
-
-
-
- cor
- float
- 1
-
-
-
- out
- complex
- 1
-
-
-