<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hakurei/internal/netlink, branch develop</title>
<subtitle>low-level userspace tooling for Rosa OS</subtitle>
<id>http://src.rosa.moe/hakurei/atom/internal/netlink?h=develop</id>
<link rel='self' href='http://src.rosa.moe/hakurei/atom/internal/netlink?h=develop'/>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/'/>
<updated>2026-03-30T14:18:43Z</updated>
<entry>
<title>internal/netlink: optional recvmsg without netpoll</title>
<updated>2026-03-30T14:18:43Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-30T14:18:43Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=a854719b9f11fea48e7221eeff50d4cdb3801052'/>
<id>urn:sha1:a854719b9f11fea48e7221eeff50d4cdb3801052</id>
<content type='text'>
For draining the socket receive buffer.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/netlink: set receive buffer size</title>
<updated>2026-03-29T17:14:47Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-29T17:14:47Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=584e30216896fd4de6301f9cf937829e16d22c49'/>
<id>urn:sha1:584e30216896fd4de6301f9cf937829e16d22c49</id>
<content type='text'>
This is done by both systemd sd-device and AOSP ueventd to improve robustness. Rosa OS will still handle ENOBUFS via coldboot but a big buffer should mitigate this as well.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/netlink: switch to recvmsg/sendmsg</title>
<updated>2026-03-29T14:36:00Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-29T14:34:53Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=648079f42cd872f16110e571ce34fdbd90f7c476'/>
<id>urn:sha1:648079f42cd872f16110e571ce34fdbd90f7c476</id>
<content type='text'>
These are more flexible than recvfrom/sendto.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/netlink: export generic connection</title>
<updated>2026-03-27T10:08:48Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-27T09:10:17Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=c61188649b757ba81c813ff2f7351a3d393cdce1'/>
<id>urn:sha1:c61188649b757ba81c813ff2f7351a3d393cdce1</id>
<content type='text'>
This enables abstractions around some families to be implemented in a separate package.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/netlink: optional check header as reply</title>
<updated>2026-03-25T10:33:01Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-25T10:33:01Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=722c3cc54f764679b12daa04066a504726fce253'/>
<id>urn:sha1:722c3cc54f764679b12daa04066a504726fce253</id>
<content type='text'>
Not every received message is a reply.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/netlink: expose multicast groups</title>
<updated>2026-03-25T08:55:35Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-25T08:55:35Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=372d509e5c72775bcd44d40e31a31bbdfd6a3f00'/>
<id>urn:sha1:372d509e5c72775bcd44d40e31a31bbdfd6a3f00</id>
<content type='text'>
This also gets rid of the cached pid value for port since that prevents multiple sockets from being open at once.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/netlink: enlarge recvfrom buffer</title>
<updated>2026-03-25T08:18:56Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-25T08:11:57Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=d62516ed1ee148c58eed60c4fa38c5dc2c3b9622'/>
<id>urn:sha1:d62516ed1ee148c58eed60c4fa38c5dc2c3b9622</id>
<content type='text'>
This also uses an array type for the buffer since its size now uses the hardcoded value found in the kernel.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/netlink: wrap netpoll via context</title>
<updated>2026-03-25T06:39:29Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-25T06:34:20Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=50403e9d60a69640107d20525379d4714da2f739'/>
<id>urn:sha1:50403e9d60a69640107d20525379d4714da2f739</id>
<content type='text'>
This removes netpoll boilerplate for the most common use case.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/netlink: nonblocking socket I/O</title>
<updated>2026-03-25T05:06:59Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-25T05:06:59Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=b98c5f2e219c142ab89c09445b6c014120f0760f'/>
<id>urn:sha1:b98c5f2e219c142ab89c09445b6c014120f0760f</id>
<content type='text'>
This enables use with blocking calls like when used with NETLINK_KOBJECT_UEVENT.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/netlink: make full response available</title>
<updated>2026-03-23T07:39:25Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-23T06:16:21Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=d972cffe5a221cc585e2edfdd1d3514eab51271c'/>
<id>urn:sha1:d972cffe5a221cc585e2edfdd1d3514eab51271c</id>
<content type='text'>
The previous API makes it impossible to retrieve remaining messages in the current iteration.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
</feed>
