<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dpibreak.git/src/platform/linux/rxring.rs, branch master</title>
<subtitle>System-wide DPI circumvention with minimal configuration
</subtitle>
<id>http://git.dilluti0n.com/dpibreak.git/atom?h=master</id>
<link rel='self' href='http://git.dilluti0n.com/dpibreak.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/'/>
<updated>2026-07-10T08:32:39Z</updated>
<entry>
<title>linux: rxring: fix lifetime issue for Pkt::net()</title>
<updated>2026-07-10T08:32:39Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-10T08:32:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=47971046d4cc8e4964a207758831f6820a805859'/>
<id>urn:sha1:47971046d4cc8e4964a207758831f6820a805859</id>
<content type='text'>
Result should be unusable after Pkt is dropped, not rx is dropped.
</content>
</entry>
<entry>
<title>linux: rxring: fix tp_snaplen treated as the L3 length instead L2</title>
<updated>2026-07-10T07:59:23Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-10T07:59:23Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=062ae9fe82f9cc2256cbdbfdc5f00e387314f49a'/>
<id>urn:sha1:062ae9fe82f9cc2256cbdbfdc5f00e387314f49a</id>
<content type='text'>
While solving it, introduced Pkt abstraction so that advance() is
automatically executed upon dropping it.

This change still allows access to mmapped pointers within the
Pkt.net() and enables the addition of other slice fields (such as mac)
later.
</content>
</entry>
<entry>
<title>linux: rxring: guard div0 as EINVAL</title>
<updated>2026-07-09T07:15:31Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-09T07:15:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=fb0f1e7ad8e7e191f66ffcdd712afcda9181dfa9'/>
<id>urn:sha1:fb0f1e7ad8e7e191f66ffcdd712afcda9181dfa9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>linux: rxring: fix u32 overflow on ring_size init</title>
<updated>2026-07-09T07:07:30Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-09T07:07:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=758399909f58de6548f66f1ae6fe25c905fddc9f'/>
<id>urn:sha1:758399909f58de6548f66f1ae6fe25c905fddc9f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>linux: rxring: fix possable memory ordering issue</title>
<updated>2026-07-09T06:27:32Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-09T06:26:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=96478e1940e7055cd9fcdb26824eae799a8ae62b'/>
<id>urn:sha1:96478e1940e7055cd9fcdb26824eae799a8ae62b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>linux: rxring: make tp_* series configurable</title>
<updated>2026-07-06T15:12:39Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-06T15:01:07Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=8a69237243c045800996846b6c2db4dd5f7383f6'/>
<id>urn:sha1:8a69237243c045800996846b6c2db4dd5f7383f6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>linux: implement socket and mmap wrapper for rxring</title>
<updated>2026-07-06T15:12:23Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-06T14:34:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=2a024e886547bdcddd9633d77baa0d25c5d3bb07'/>
<id>urn:sha1:2a024e886547bdcddd9633d77baa0d25c5d3bb07</id>
<content type='text'>
Here mmap/munmap wrapper remain unsafe since mmap returns a pointer
causes a memory leak when munmap is not called while dropping, and
munmap has strict rule (PAGE_SIZE aligned) for addr defined on
munmap(2).
</content>
</entry>
<entry>
<title>linux: add PACKET_RX_RING to libc_s::setsockopt apstraction</title>
<updated>2026-07-06T13:05:28Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-06T13:05:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=e9db8ad3caf4c28f301ef7c6be72f9617cc490b5'/>
<id>urn:sha1:e9db8ad3caf4c28f301ef7c6be72f9617cc490b5</id>
<content type='text'>
The existing implementation was unsafe because UB could occur if a
user-space pointer referenced by the struct sock_fprog was incorrectly
passed. Rust safe model allows pointer creation and makes
dereferencing unsafe. In this case, dereferencing happenes in
kernel-space, Rust cannot guarantee this. So it must be handled
separately.
</content>
</entry>
<entry>
<title>linux: add safe abstraction for setsockopt(SO_ATTACH_FILTER)</title>
<updated>2026-07-06T11:11:59Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-06T11:07:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=ca1737e17103d767691786b5bbf6de491dcc75a3'/>
<id>urn:sha1:ca1737e17103d767691786b5bbf6de491dcc75a3</id>
<content type='text'>
Treating optval as just a &amp;[u8] in setsockopt() is not appropriate for
usage patterns where a struct is put into optval. Rust treats casting
a struct to &amp;[u8] as unsafe.
</content>
</entry>
<entry>
<title>linux: rxring: nit: add SPDX header</title>
<updated>2026-03-15T04:27:57Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-03-15T04:27:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=57ff0e7c3279935f3879691d794bf5c8f798e5c0'/>
<id>urn:sha1:57ff0e7c3279935f3879691d794bf5c8f798e5c0</id>
<content type='text'>
</content>
</entry>
</feed>
