nndocs:sandbox
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
nndocs:sandbox [2024/09/10 11:47] – add table of contents and hosts naptastic | nndocs:sandbox [2025/05/04 02:15] (current) – [Networks] make a table. Might be fun. naptastic | ||
---|---|---|---|
Line 11: | Line 11: | ||
| Food | cherry | | | Food | cherry | | ||
- | ====IQNs==== | + | ====IQN and NQN==== |
- | We do iSCSI Qualified Names by the book, but as simply as possible. A couple of examples: | + | We do iSCSI and NVMe Qualified Names by the book, but as simply as possible. A couple of examples: |
- | iqn.2014-08.rocks.narf.sadness | + | iqn.2014-08.rocks.narf.southpark: |
- | | + | |
- | IQNs can also have :more.stuff on the end. I can't come up with a use case, since hostnames are already fully-qualified and unique. | + | * 'iqn' for iSCSI or ' |
+ | * YYYY-MM is the month in which the domain was registered. | ||
+ | * the hostname is in backwards DNS order | ||
+ | * :initiator or :namespace | ||
- | There are still some :01 suffixes lurking around | + | From the perspective of a host, every storage bus has a number. Bus 0 is the local PCI bus. Bus 1 is for the host acting as an initiator. Higher numbers are for a host acting as a target. Connections go like this: |
- | Ideally, / | + | iqn.2004-12.com.naptastic.rocky:01 -> iqn.2014-08.rocks.narf.southpark: |
- | ====NQNs==== | + | Since rocky' |
- | NQNs: nqn.2014-08.rocks.narf.hostname | + | |
====Interfaces==== | ====Interfaces==== | ||
Line 36: | Line 38: | ||
* mlxX: mlx ports when they are configured for Ethernet operation | * mlxX: mlx ports when they are configured for Ethernet operation | ||
+ | |||
+ | ---- | ||
=====Numbers===== | =====Numbers===== | ||
Line 41: | Line 45: | ||
I'm not actually forcing MAC addresses on anything... yet. Just making a note that | I'm not actually forcing MAC addresses on anything... yet. Just making a note that | ||
* NAP is 6e:61:70 in hexadecimal | * NAP is 6e:61:70 in hexadecimal | ||
- | * nap is 4e:41:40 in hexadecimal | + | * nap is 4e:41:50 in hexadecimal |
As of September 2024, neither prefix has been assigned to a vendor. | As of September 2024, neither prefix has been assigned to a vendor. | ||
=== MAC addresses for the quad-port gigabit cards === | === MAC addresses for the quad-port gigabit cards === | ||
- | This was in shark, and is now in a drawer: | + | southpark en(0..3): |
hardware ethernet 00: | hardware ethernet 00: | ||
hardware ethernet 00: | hardware ethernet 00: | ||
Line 52: | Line 56: | ||
hardware ethernet 00: | hardware ethernet 00: | ||
- | duckling en(0..3) | + | in a drawer: |
hardware ethernet 00: | hardware ethernet 00: | ||
hardware ethernet 00: | hardware ethernet 00: | ||
hardware ethernet 00: | hardware ethernet 00: | ||
hardware ethernet 00: | hardware ethernet 00: | ||
+ | |||
+ | ====IPv6==== | ||
+ | IPv6 local unique addresses have four parts: | ||
+ | - 8 bits of fixed prefix (fd) | ||
+ | - 40 bits of pseudorandom prefix | ||
+ | - 16 bits of subnet | ||
+ | - 64 bits of GUID | ||
+ | |||
+ | My top 48 bits are going to be fd20: | ||
====IP Addresses==== | ====IP Addresses==== | ||
Line 68: | Line 81: | ||
====Networks==== | ====Networks==== | ||
+ | |||
+ | |||
+ | ^ Network ^ IPv4 Range ^ IPv6 Range ^ IB Subnet ^ VLAN ^ VXLAN IP ^ VXLAN ID ^ | ||
+ | | green | 172.20.0/22 | fd20: | ||
* 0-3/22: " | * 0-3/22: " | ||
Line 73: | Line 90: | ||
* 1: .0-255 contains IPMI interfaces and nothing else right now | * 1: .0-255 contains IPMI interfaces and nothing else right now | ||
* 2: .0-255 is for unassigned DHCP hosts | * 2: .0-255 is for unassigned DHCP hosts | ||
- | * 3: .0-254 is for VMs that are expected to only run on a specific physical host. Hosts | + | * 3: .0-254 is for VMs that are expected to only run on a specific physical host. |
- | * .32-39: butler | + | |
* .72-79: carbon | * .72-79: carbon | ||
* .80-87: duckling | * .80-87: duckling | ||
Line 122: | Line 138: | ||
* 13: southpark (2023) | * 13: southpark (2023) | ||
* 14: pepto (2026) | * 14: pepto (2026) | ||
- | * 15..23: (mainframe expanders. If we get bigger than 16 nodes I don't mind renumbering again.) | + | * 15..23: (future expansion) |
* 24..31: switches | * 24..31: switches | ||
* 24: butwhy b4: | * 24: butwhy b4: | ||
Line 133: | Line 149: | ||
* 35: xp-pe (tbh idk if this still exists) | * 35: xp-pe (tbh idk if this still exists) | ||
* 36: tf2 | * 36: tf2 | ||
+ | * 68: rocky (VM with SR-IOV parts) | ||
+ | |||
+ | ---- | ||
+ | |||
+ | =====Big Idea Dumping Ground===== | ||
+ | ====SoC on a PCI card==== | ||
+ | Mostly this is to enable other projects. It needs at least these features: | ||
+ | |||
+ | * reasonable amount of CPU and DRAM | ||
+ | * PCIe 3.0 x1 or better | ||
+ | * Internal ports: | ||
+ | - m.2 slot | ||
+ | - 40-pin with GPIO, I2C, etc... | ||
+ | - LP-DIMM | ||
+ | * External ports: | ||
+ | - HDMI | ||
+ | - gigabit Ethernet | ||
+ | - (2) USB 3.1 | ||
+ | |||
+ | The card presents itself to its host as one or more devices. It can pass through its USB host adapter, network adapter, and m.2 slot, and act as a GPU. It supports SR-IOV. You can boot off it. With the right hardware support, it should be able to stay awake while the host powers off or reboots. | ||
+ | |||
+ | ====PCIe networking==== | ||
+ | These products: | ||
+ | |||
+ | - Retimer cards in x4, x8, and x16 | ||
+ | - Switch cards in x8 and x16 | ||
+ | - Outboard switches with just ports | ||
+ | - Device shelves | ||
+ | * Switch IC | ||
+ | * Stand-up card slots | ||
+ | * OCP slot, maybe? | ||
+ | * PCI and ISA bridges | ||
+ | - USB device holder | ||
+ | - SATA/SAS and NVMe backplanes | ||
+ | |||
+ | The paradigm is " | ||
+ | |||
+ | Everything except retimer cards needs an API and UI for managing things. | ||
+ | |||
+ | ====Better Audio Stack==== | ||
+ | Want to: | ||
+ | - Connect to all ports in the system | ||
+ | - Dynamically resample to buffers in shared memory | ||
+ | - RDMA to/from other hosts | ||
+ | (is RDMA multicast possible? That would be so fucking sick) | ||
+ | - Full mixing capability | ||
+ | - Backend for jackd | ||
+ | |||
+ | ====Better DAW==== | ||
+ | Core concept is a piece of virtual tape that's infinitely long, infinitely wide, and has an infinite number of tape heads that can all be accessed remotely. A recording session is a server you log into, send recorded audio, receive mixed audio, and update a database of what should play when and with what settings. | ||
+ | ====RDMA to a Commodore 64==== | ||
+ | The 6502 can't drive the C64's memory anywhere near full-speed, but the ROM port has a DMA pin, so a DMA-capable cartridge can do impossibly cool things. I'd like to find a good demo playback engine that already exists, and adapt it to play back data being streamed in over a network. | ||
+ | ====Better Mixer==== | ||
+ | FIXME |
nndocs/sandbox.1725968878.txt.gz · Last modified: 2024/09/10 11:47 by naptastic