libpnet / libpnet/libpnet

Cannot obtain `sockaddr_ll` from `DataLinkReceiver::next`

Open
#407 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
2.6k
Forks
329
PR merge metrics
No merged PRs in 30d

Description

We want to identify whether a L3 datalink packet is sent to the interface or going outward. However, iterating over a DataLinkReceiver through DataLinkReceiverImpl::next only provides data packets, while caddr and anything else is not accessible.

The man page packet(7) says the sockaddr_ll contains some useful information where sll_pkttype might be able to tell which direction the packet is flowing. Is it possible to expose caddr (defined here) or encapsulate it in an idiomatic way?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with DataLinkReceiverImpl::next in pnet_datalink/linux.rs and inspect caddr, defined in the same file. Read packet(7), especially sockaddr_ll and sll_pkttype, to determine the metadata needed; done means the receiver exposes that information through an idiomatic API without losing the existing packet data.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.