diff --git a/proto/_golden/col_arr_ipv6.hex b/proto/_golden/col_arr_ipv6.hex index 4c8cbba1..567d2bcf 100644 --- a/proto/_golden/col_arr_ipv6.hex +++ b/proto/_golden/col_arr_ipv6.hex @@ -24,152 +24,152 @@ 00000170 8d 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 |................| 00000180 93 00 00 00 00 00 00 00 96 00 00 00 00 00 00 00 |................| 00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................| -000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 |................| -000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................| -000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 |................| -000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 |................| -000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 |................| -00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 |................| -00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 |................| -00000220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 |................| -00000230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 |................| -00000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 |................| -00000250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 |................| -00000260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 |................| -00000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 |................| -00000280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 |................| -00000290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 |................| -000002a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 |................| -000002b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 |................| -000002c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 |................| -000002d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 |................| -000002e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 |................| -000002f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 |................| -00000300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 |................| -00000310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 |................| -00000320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 |................| -00000330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a |................| -00000340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 |................| -00000350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a |................| -00000360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b |................| -00000370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a |................| -00000380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b |................| -00000390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c |................| -000003a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b |................| -000003b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c |................| -000003c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d |................| -000003d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c |................| -000003e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d |................| -000003f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e |................| -00000400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d |................| -00000410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e |................| -00000420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f |................| -00000430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e |................| -00000440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f |................| -00000450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 |................| -00000460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f |................| -00000470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 |................| -00000480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 |................| -00000490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 |................| -000004a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 |................| -000004b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 |................| -000004c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 |................| -000004d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 |................| -000004e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 |................| -000004f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 |................| -00000500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 |................| -00000510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 |................| -00000520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 |................| -00000530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 |................| -00000540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 |................| -00000550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 |................| -00000560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 |................| -00000570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 |................| -00000580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 |................| -00000590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 |................| -000005a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17 |................| -000005b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 |................| -000005c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17 |................| -000005d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 |................| -000005e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17 |................| -000005f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 |................| -00000600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 |................| -00000610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 |................| -00000620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 |................| -00000630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a |................| -00000640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 |................| -00000650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a |................| -00000660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b |................| -00000670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a |................| -00000680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b |................| -00000690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c |................| -000006a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b |................| -000006b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c |................| -000006c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1d |................| -000006d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c |................| -000006e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1d |................| -000006f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1e |................| -00000700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1d |................| -00000710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1e |................| -00000720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f |................| -00000730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1e |................| -00000740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f |................| -00000750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 |............... | -00000760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f |................| -00000770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 |............... | -00000780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 |...............!| -00000790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 |............... | -000007a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 |...............!| -000007b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 |..............."| -000007c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 |...............!| -000007d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 |..............."| -000007e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 23 |...............#| -000007f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 |..............."| -00000800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 23 |...............#| -00000810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 |...............$| -00000820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 23 |...............#| -00000830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 |...............$| -00000840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 25 |...............%| -00000850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 |...............$| -00000860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 25 |...............%| -00000870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 |...............&| -00000880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 25 |...............%| -00000890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 |...............&| -000008a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 27 |...............'| -000008b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 |...............&| -000008c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 27 |...............'| -000008d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 |...............(| -000008e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 27 |...............'| -000008f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 |...............(| -00000900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 29 |...............)| -00000910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 |...............(| -00000920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 29 |...............)| -00000930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2a |...............*| -00000940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 29 |...............)| -00000950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2a |...............*| -00000960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b |...............+| -00000970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2a |...............*| -00000980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b |...............+| -00000990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2c |...............,| -000009a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b |...............+| -000009b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2c |...............,| -000009c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2d |...............-| -000009d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2c |...............,| -000009e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2d |...............-| -000009f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e |................| -00000a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2d |...............-| -00000a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e |................| -00000a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2f |.............../| -00000a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e |................| -00000a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2f |.............../| -00000a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 |...............0| -00000a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2f |.............../| -00000a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 |...............0| -00000a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 |...............1| -00000a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 |...............0| -00000aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 |...............1| -00000ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 32 |...............2| -00000ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 |...............1| -00000ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 32 |...............2| -00000ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 33 |...............3| +000001a0 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 |................| +000001b0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 |................| +000001c0 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 |................| +000001d0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 |................| +000001e0 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 |................| +000001f0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 |................| +00000200 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 |................| +00000210 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 |................| +00000220 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 |................| +00000230 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 |................| +00000240 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 |................| +00000250 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 |................| +00000260 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 |................| +00000270 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 |................| +00000280 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 |................| +00000290 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 |................| +000002a0 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 |................| +000002b0 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 |................| +000002c0 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 |................| +000002d0 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 |................| +000002e0 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 |................| +000002f0 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 |................| +00000300 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 |................| +00000310 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 |................| +00000320 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 |................| +00000330 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 |................| +00000340 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 |................| +00000350 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 |................| +00000360 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 00 |................| +00000370 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 |................| +00000380 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 00 |................| +00000390 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 00 |................| +000003a0 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 00 |................| +000003b0 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 00 |................| +000003c0 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 00 |................| +000003d0 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 00 |................| +000003e0 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 00 |................| +000003f0 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 00 |................| +00000400 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 00 |................| +00000410 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 00 |................| +00000420 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 |................| +00000430 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 00 |................| +00000440 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 |................| +00000450 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 |................| +00000460 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 |................| +00000470 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 |................| +00000480 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 |................| +00000490 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 |................| +000004a0 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 |................| +000004b0 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 00 |................| +000004c0 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 |................| +000004d0 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 00 |................| +000004e0 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 00 |................| +000004f0 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 00 |................| +00000500 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 00 |................| +00000510 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 |................| +00000520 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 00 |................| +00000530 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 |................| +00000540 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00 00 |................| +00000550 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 |................| +00000560 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00 00 |................| +00000570 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 00 |................| +00000580 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00 00 |................| +00000590 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 00 |................| +000005a0 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 00 |................| +000005b0 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 00 |................| +000005c0 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 00 |................| +000005d0 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 00 |................| +000005e0 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 00 |................| +000005f0 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 00 |................| +00000600 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 00 |................| +00000610 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 00 |................| +00000620 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 00 |................| +00000630 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 00 |................| +00000640 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 00 |................| +00000650 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 00 |................| +00000660 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00 00 |................| +00000670 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 00 |................| +00000680 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00 00 |................| +00000690 00 00 00 00 00 00 00 1c 00 00 00 00 00 00 00 00 |................| +000006a0 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00 00 |................| +000006b0 00 00 00 00 00 00 00 1c 00 00 00 00 00 00 00 00 |................| +000006c0 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 |................| +000006d0 00 00 00 00 00 00 00 1c 00 00 00 00 00 00 00 00 |................| +000006e0 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 |................| +000006f0 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 |................| +00000700 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 |................| +00000710 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 |................| +00000720 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 00 |................| +00000730 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 |................| +00000740 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 00 |................| +00000750 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 00 |....... ........| +00000760 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 00 |................| +00000770 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 00 |....... ........| +00000780 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 00 |.......!........| +00000790 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 00 |....... ........| +000007a0 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 00 |.......!........| +000007b0 00 00 00 00 00 00 00 22 00 00 00 00 00 00 00 00 |......."........| +000007c0 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 00 |.......!........| +000007d0 00 00 00 00 00 00 00 22 00 00 00 00 00 00 00 00 |......."........| +000007e0 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 00 |.......#........| +000007f0 00 00 00 00 00 00 00 22 00 00 00 00 00 00 00 00 |......."........| +00000800 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 00 |.......#........| +00000810 00 00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 |.......$........| +00000820 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 00 |.......#........| +00000830 00 00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 |.......$........| +00000840 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 00 |.......%........| +00000850 00 00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 |.......$........| +00000860 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 00 |.......%........| +00000870 00 00 00 00 00 00 00 26 00 00 00 00 00 00 00 00 |.......&........| +00000880 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 00 |.......%........| +00000890 00 00 00 00 00 00 00 26 00 00 00 00 00 00 00 00 |.......&........| +000008a0 00 00 00 00 00 00 00 27 00 00 00 00 00 00 00 00 |.......'........| +000008b0 00 00 00 00 00 00 00 26 00 00 00 00 00 00 00 00 |.......&........| +000008c0 00 00 00 00 00 00 00 27 00 00 00 00 00 00 00 00 |.......'........| +000008d0 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 00 |.......(........| +000008e0 00 00 00 00 00 00 00 27 00 00 00 00 00 00 00 00 |.......'........| +000008f0 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 00 |.......(........| +00000900 00 00 00 00 00 00 00 29 00 00 00 00 00 00 00 00 |.......)........| +00000910 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 00 |.......(........| +00000920 00 00 00 00 00 00 00 29 00 00 00 00 00 00 00 00 |.......)........| +00000930 00 00 00 00 00 00 00 2a 00 00 00 00 00 00 00 00 |.......*........| +00000940 00 00 00 00 00 00 00 29 00 00 00 00 00 00 00 00 |.......)........| +00000950 00 00 00 00 00 00 00 2a 00 00 00 00 00 00 00 00 |.......*........| +00000960 00 00 00 00 00 00 00 2b 00 00 00 00 00 00 00 00 |.......+........| +00000970 00 00 00 00 00 00 00 2a 00 00 00 00 00 00 00 00 |.......*........| +00000980 00 00 00 00 00 00 00 2b 00 00 00 00 00 00 00 00 |.......+........| +00000990 00 00 00 00 00 00 00 2c 00 00 00 00 00 00 00 00 |.......,........| +000009a0 00 00 00 00 00 00 00 2b 00 00 00 00 00 00 00 00 |.......+........| +000009b0 00 00 00 00 00 00 00 2c 00 00 00 00 00 00 00 00 |.......,........| +000009c0 00 00 00 00 00 00 00 2d 00 00 00 00 00 00 00 00 |.......-........| +000009d0 00 00 00 00 00 00 00 2c 00 00 00 00 00 00 00 00 |.......,........| +000009e0 00 00 00 00 00 00 00 2d 00 00 00 00 00 00 00 00 |.......-........| +000009f0 00 00 00 00 00 00 00 2e 00 00 00 00 00 00 00 00 |................| +00000a00 00 00 00 00 00 00 00 2d 00 00 00 00 00 00 00 00 |.......-........| +00000a10 00 00 00 00 00 00 00 2e 00 00 00 00 00 00 00 00 |................| +00000a20 00 00 00 00 00 00 00 2f 00 00 00 00 00 00 00 00 |......./........| +00000a30 00 00 00 00 00 00 00 2e 00 00 00 00 00 00 00 00 |................| +00000a40 00 00 00 00 00 00 00 2f 00 00 00 00 00 00 00 00 |......./........| +00000a50 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 00 |.......0........| +00000a60 00 00 00 00 00 00 00 2f 00 00 00 00 00 00 00 00 |......./........| +00000a70 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 00 |.......0........| +00000a80 00 00 00 00 00 00 00 31 00 00 00 00 00 00 00 00 |.......1........| +00000a90 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 00 |.......0........| +00000aa0 00 00 00 00 00 00 00 31 00 00 00 00 00 00 00 00 |.......1........| +00000ab0 00 00 00 00 00 00 00 32 00 00 00 00 00 00 00 00 |.......2........| +00000ac0 00 00 00 00 00 00 00 31 00 00 00 00 00 00 00 00 |.......1........| +00000ad0 00 00 00 00 00 00 00 32 00 00 00 00 00 00 00 00 |.......2........| +00000ae0 00 00 00 00 00 00 00 33 00 00 00 00 00 00 00 00 |.......3........| diff --git a/proto/_golden/col_arr_ipv6.raw b/proto/_golden/col_arr_ipv6.raw index 19bcb908..5a9ae1a6 100644 Binary files a/proto/_golden/col_arr_ipv6.raw and b/proto/_golden/col_arr_ipv6.raw differ diff --git a/proto/_golden/col_ipv6.hex b/proto/_golden/col_ipv6.hex index 58ff249b..52e96c49 100644 --- a/proto/_golden/col_ipv6.hex +++ b/proto/_golden/col_ipv6.hex @@ -1,50 +1,50 @@ 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 |................| -00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 |................| -00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 |................| -00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 |................| -00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 |................| -00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 |................| -00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 |................| -00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 |................| -000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a |................| -000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b |................| -000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c |................| -000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d |................| -000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e |................| -000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f |................| -00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 |................| -00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 |................| -00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 |................| -00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 |................| -00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 |................| -00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 |................| -00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 |................| -00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17 |................| -00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 |................| -00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 |................| -000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a |................| -000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b |................| -000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c |................| -000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1d |................| -000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1e |................| -000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f |................| -00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 |............... | -00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 |...............!| -00000220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 |..............."| -00000230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 23 |...............#| -00000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 |...............$| -00000250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 25 |...............%| -00000260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 |...............&| -00000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 27 |...............'| -00000280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 |...............(| -00000290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 29 |...............)| -000002a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2a |...............*| -000002b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b |...............+| -000002c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2c |...............,| -000002d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2d |...............-| -000002e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e |................| -000002f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2f |.............../| -00000300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 |...............0| -00000310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 |...............1| +00000010 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 |................| +00000020 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 |................| +00000030 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 |................| +00000050 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 |................| +00000060 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 |................| +00000070 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 |................| +00000080 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 |................| +00000090 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 |................| +000000a0 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 |................| +000000b0 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 00 |................| +000000c0 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 00 |................| +000000d0 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 00 |................| +000000e0 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 00 |................| +000000f0 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 |................| +00000100 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 |................| +00000110 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 |................| +00000120 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 00 |................| +00000130 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 00 |................| +00000140 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 |................| +00000150 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00 00 |................| +00000160 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 00 |................| +00000170 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 00 |................| +00000180 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 00 |................| +00000190 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 00 |................| +000001a0 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 00 |................| +000001b0 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00 00 |................| +000001c0 00 00 00 00 00 00 00 1c 00 00 00 00 00 00 00 00 |................| +000001d0 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 |................| +000001e0 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00 00 |................| +000001f0 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 00 |................| +00000200 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 00 |....... ........| +00000210 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 00 |.......!........| +00000220 00 00 00 00 00 00 00 22 00 00 00 00 00 00 00 00 |......."........| +00000230 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 00 |.......#........| +00000240 00 00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 |.......$........| +00000250 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 00 |.......%........| +00000260 00 00 00 00 00 00 00 26 00 00 00 00 00 00 00 00 |.......&........| +00000270 00 00 00 00 00 00 00 27 00 00 00 00 00 00 00 00 |.......'........| +00000280 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 00 |.......(........| +00000290 00 00 00 00 00 00 00 29 00 00 00 00 00 00 00 00 |.......)........| +000002a0 00 00 00 00 00 00 00 2a 00 00 00 00 00 00 00 00 |.......*........| +000002b0 00 00 00 00 00 00 00 2b 00 00 00 00 00 00 00 00 |.......+........| +000002c0 00 00 00 00 00 00 00 2c 00 00 00 00 00 00 00 00 |.......,........| +000002d0 00 00 00 00 00 00 00 2d 00 00 00 00 00 00 00 00 |.......-........| +000002e0 00 00 00 00 00 00 00 2e 00 00 00 00 00 00 00 00 |................| +000002f0 00 00 00 00 00 00 00 2f 00 00 00 00 00 00 00 00 |......./........| +00000300 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 00 |.......0........| +00000310 00 00 00 00 00 00 00 31 00 00 00 00 00 00 00 00 |.......1........| diff --git a/proto/_golden/col_ipv6.raw b/proto/_golden/col_ipv6.raw index 7fa81552..7211c188 100644 Binary files a/proto/_golden/col_ipv6.raw and b/proto/_golden/col_ipv6.raw differ diff --git a/proto/cmd/ch-gen-col/main.go b/proto/cmd/ch-gen-col/main.go index a9104fde..53378f0f 100644 --- a/proto/cmd/ch-gen-col/main.go +++ b/proto/cmd/ch-gen-col/main.go @@ -318,7 +318,7 @@ func run() error { } } for _, v := range variants { - if !v.Byte() && !v.IPv6() { + if !v.Byte() { v.GenerateUnsafe = true } base := "col_" + v.ElemLower() diff --git a/proto/col_ipv6_safe_gen.go b/proto/col_ipv6_safe_gen.go index 342f037b..e1531559 100644 --- a/proto/col_ipv6_safe_gen.go +++ b/proto/col_ipv6_safe_gen.go @@ -1,3 +1,5 @@ +//go:build !(amd64 || arm64) || purego + // Code generated by ./cmd/ch-gen-int, DO NOT EDIT. package proto diff --git a/proto/col_ipv6_unsafe_gen.go b/proto/col_ipv6_unsafe_gen.go new file mode 100644 index 00000000..76dc7698 --- /dev/null +++ b/proto/col_ipv6_unsafe_gen.go @@ -0,0 +1,44 @@ +//go:build (amd64 || arm64) && !purego + +// Code generated by ./cmd/ch-gen-int, DO NOT EDIT. + +package proto + +import ( + "unsafe" + + "github.com/go-faster/errors" +) + +// DecodeColumn decodes IPv6 rows from *Reader. +func (c *ColIPv6) DecodeColumn(r *Reader, rows int) error { + if rows == 0 { + return nil + } + *c = append(*c, make([]IPv6, rows)...) + s := *(*slice)(unsafe.Pointer(c)) + const size = 128 / 8 + s.Len *= size + s.Cap *= size + dst := *(*[]byte)(unsafe.Pointer(&s)) + if err := r.ReadFull(dst); err != nil { + return errors.Wrap(err, "read full") + } + return nil +} + +// EncodeColumn encodes IPv6 rows to *Buffer. +func (c ColIPv6) EncodeColumn(b *Buffer) { + if len(c) == 0 { + return + } + offset := len(b.Buf) + const size = 128 / 8 + b.Buf = append(b.Buf, make([]byte, size*len(c))...) + s := *(*slice)(unsafe.Pointer(&c)) + s.Len *= size + s.Cap *= size + src := *(*[]byte)(unsafe.Pointer(&s)) + dst := b.Buf[offset:] + copy(dst, src) +} diff --git a/proto/ipv6.go b/proto/ipv6.go index 4adb6d38..6f9f045a 100644 --- a/proto/ipv6.go +++ b/proto/ipv6.go @@ -1,47 +1,19 @@ package proto import ( - "encoding/binary" - "inet.af/netaddr" ) -// IPv6 represents UInt128 address as UInt128 number. -// -// Not using netaddr.IP because UInt128 is more efficient. -// -// Use ToIP helper for convenience. -type IPv6 UInt128 +// IPv6 represents IPv6 address. +type IPv6 [16]byte // ToIP represents IPv6 as netaddr.IP. func (v IPv6) ToIP() netaddr.IP { - var buf [16]byte - binary.BigEndian.PutUint64(buf[0:8], v.High) - binary.BigEndian.PutUint64(buf[8:16], v.Low) - return netaddr.IPv6Raw(buf) + return netaddr.IPv6Raw(v) } // ToIPv6 represents ip as IPv6. -func ToIPv6(ip netaddr.IP) IPv6 { - b := ip.As16() - return IPv6{ - High: binary.BigEndian.Uint64(b[0:8]), - Low: binary.BigEndian.Uint64(b[8:16]), - } -} +func ToIPv6(ip netaddr.IP) IPv6 { return ip.As16() } -func binIPv6(b []byte) IPv6 { - _ = b[:16] // bounds check hint to compiler; see golang.org/issue/14808 - // Using BigEndian for IPv6 as per ClickHouse implementation. - return IPv6{ - High: binary.BigEndian.Uint64(b[0:8]), - Low: binary.BigEndian.Uint64(b[8:16]), - } -} - -func binPutIPv6(b []byte, v IPv6) { - _ = b[:16] // bounds check hint to compiler; see golang.org/issue/14808 - // Using BigEndian for IPv6 as per ClickHouse implementation. - binary.BigEndian.PutUint64(b[0:8], v.High) - binary.BigEndian.PutUint64(b[8:16], v.Low) -} +func binIPv6(b []byte) IPv6 { return *(*[16]byte)(b) } +func binPutIPv6(b []byte, v IPv6) { copy(b, v[:]) } diff --git a/proto/ipv6_test.go b/proto/ipv6_test.go index 9357e117..8fd67ab2 100644 --- a/proto/ipv6_test.go +++ b/proto/ipv6_test.go @@ -2,6 +2,7 @@ package proto import ( "bytes" + "encoding/binary" "testing" "github.com/stretchr/testify/require" @@ -11,7 +12,17 @@ import ( ) func IPv6FromInt(v int) IPv6 { - return IPv6(UInt128FromInt(v)) + s := IPv6{} + binary.BigEndian.PutUint64(s[:], uint64(v)) + return s +} + +func TestToIPv6(t *testing.T) { + v := netaddr.MustParseIP("2001:db8:ac10:fe01:feed:babe:cafe:0") + b := make([]byte, 16) + binPutIPv6(b, v.As16()) + ip := binIPv6(b) + require.Equal(t, v, ip.ToIP()) } func TestColIPv6_NetAddr(t *testing.T) {