homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: document AF_PACKET socket address format
Type: enhancement Stage: resolved
Components: Documentation Versions: Python 3.7, Python 3.6
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: Tim.Tisdall, Winterflower, azsorkin, benjamin.peterson, berker.peksag, cheryl.sabella, docs@python, martin.panter, vstinner
Priority: normal Keywords: easy, patch

Created on 2015年09月09日 13:07 by Tim.Tisdall, last changed 2022年04月11日 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
af_packet_doc.patch Winterflower, 2015年10月29日 22:09 review
Pull Requests
URL Status Linked Edit
PR 4092 merged cheryl.sabella, 2017年10月23日 17:56
PR 9207 merged benjamin.peterson, 2018年09月12日 00:33
PR 9209 merged benjamin.peterson, 2018年09月12日 00:36
Messages (10)
msg250306 - (view) Author: Tim Tisdall (Tim.Tisdall) * Date: 2015年09月09日 13:07
As mentioned in #24984, I'm making another issue to document the address format for AF_PACKET. In this case there's already documentation in Modules/socketmodule.c that says:
- an AF_PACKET socket address is a tuple containing a string
 specifying the ethernet interface and an integer specifying
 the Ethernet protocol number to be received. For example:
 ("eth0",0x1234). Optional 3rd,4th,5th elements in the tuple
 specify packet-type and ha-type/addr.
But nothing has been added to Doc/library/socket.rst .
The documentation needs to be confirmed with the code. (It probably should be altered somewhat to state how you "specify packet-type and ha-type/addr"... and maybe what a "ha-type/addr" is... A quick Google search found this very useful reference: https://books.google.ca/books?id=Chr1NDlUcI8C&pg=PA472&ots=OCEwyjdXJo&sig=PuNG72WIvv4-A924f9MvzPtgQDc&hl=en&sa=X&ved=0CE8Q6AEwCGoVChMI6IiTyoDqxwIVCTs-Ch3bCAXy#v=onepage&q&f=false )
msg250307 - (view) Author: Tim Tisdall (Tim.Tisdall) * Date: 2015年09月09日 13:11
Right now the docs say "Certain other address families (:const:`AF_PACKET`, :const:`AF_CAN`) support specific representations.".
I was going to create a separate issue for AF_CAN, but it seems that it's already documented... When documentation is added for AF_PACKET, please remove the above mentioned line entirely as AF_CAN is already documented.
msg253696 - (view) Author: Camilla Montonen (Winterflower) Date: 2015年10月29日 22:09
Provided patch provides documentation for the AF_PACKET address_family.
msg253722 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2015年10月30日 07:17
Thanks! The patch looks good to me. I left a few minor comments on Rietveld: http://bugs.python.org/review/25041/ 
msg253773 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2015年10月31日 04:02
Quickly looking through the history (annotate function on Mercurial web frontend):
* Revisions 3d4a7cd0bf17, c8ef864ba861 (2001): AF_PACKET support added on Linux. Partially documented in C comment and socket.bind() docstring. AF/PF_PACKET, PACKET_* constants also added.
* #947352 (Python 2.4), 8b3288f607e1: Support specifying hardware address, for sendto().
Here are some more things might be good to tease out:
1. Please don’t invent new parameter names without a good reason. I suggest (ifname, proto, pkttype, hatype, addr). These are already used in the bind() doc string, most are consistent with Linux’s struct sockaddr_ll fields, and "proto" is consistent with Python’s socket() constructor.
2. There is an error message mentioning "protoNumber" which could also be adjusted for consistency
3. When Python generates the ifname string, it uses the empty string for ifindex zero (matching any interface), although it does not look like parsing this back is supported
4. proto is endian-corrected, in contrast with Linux’s version being in network byte-order
5. Default pkttype is zero. This is equal to PACKET_HOST, so could be useful. Might also be worth changing the source code to explicitly use PACKET_HOST.
6. addr has to be a bytes-like object
7. Packet support is specific to Linux, and may not be compiled in
8. Existence of *_PACKET and PACKET_* constants
9. socket.bind() doc string needs updating since revision c8ef864ba861 (missing fifth parameter, addr)
msg253871 - (view) Author: Camilla Montonen (Winterflower) Date: 2015年11月01日 20:02
Thank you very much for the feedback, Martin and Berker!
I'll start working on the revised patch.
msg302797 - (view) Author: Cheryl Sabella (cheryl.sabella) * (Python committer) Date: 2017年09月23日 19:02
Hello Camilla,
Would you like to create a Github pull request for your patch?
msg325108 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2018年09月12日 00:32
New changeset 731ff68eeef58babdf2b32dc9a73b141760c2be9 by Benjamin Peterson (Cheryl Sabella) in branch 'master':
closes bpo-25041: Document AF_PACKET socket address format. (GH-4092)
https://github.com/python/cpython/commit/731ff68eeef58babdf2b32dc9a73b141760c2be9
msg325112 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2018年09月12日 01:46
New changeset cadb66e173ded86ebc85b54889db48f66e7af592 by Benjamin Peterson in branch '3.7':
[3.7] closes bpo-25041: Document AF_PACKET socket address format. (GH-9207)
https://github.com/python/cpython/commit/cadb66e173ded86ebc85b54889db48f66e7af592
msg325122 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2018年09月12日 05:36
New changeset a00de685c11cf8bdca1f8efa7aab80552d80ddfb by Benjamin Peterson in branch '3.6':
[3.6] closes bpo-25041: Document AF_PACKET socket address format. (GH-9209)
https://github.com/python/cpython/commit/a00de685c11cf8bdca1f8efa7aab80552d80ddfb
History
Date User Action Args
2022年04月11日 14:58:20adminsetgithub: 69229
2018年09月12日 05:36:14benjamin.petersonsetmessages: + msg325122
2018年09月12日 01:46:39benjamin.petersonsetmessages: + msg325112
2018年09月12日 00:36:08benjamin.petersonsetpull_requests: + pull_request8643
2018年09月12日 00:33:38benjamin.petersonsetpull_requests: + pull_request8641
2018年09月12日 00:32:18benjamin.petersonsetstatus: open -> closed

nosy: + benjamin.peterson
messages: + msg325108

resolution: fixed
stage: patch review -> resolved
2017年10月23日 17:56:55cheryl.sabellasetstage: needs patch -> patch review
pull_requests: + pull_request4062
2017年09月24日 02:41:24Mariattasetstage: patch review -> needs patch
versions: + Python 3.7, - Python 3.4, Python 3.5
2017年09月23日 19:02:39cheryl.sabellasetnosy: + cheryl.sabella
messages: + msg302797
2015年11月01日 20:02:59Winterflowersetmessages: + msg253871
2015年10月31日 04:02:49martin.pantersetnosy: + martin.panter
messages: + msg253773
2015年10月30日 07:17:05berker.peksagsetnosy: + berker.peksag

messages: + msg253722
stage: needs patch -> patch review
2015年10月29日 22:09:31Winterflowersetfiles: + af_packet_doc.patch

nosy: + Winterflower
messages: + msg253696

keywords: + patch
2015年09月10日 13:54:34azsorkinsetnosy: + azsorkin
2015年09月09日 14:12:30berker.peksagsetkeywords: + easy
stage: needs patch
2015年09月09日 13:11:58Tim.Tisdallsetmessages: + msg250307
2015年09月09日 13:09:58vstinnersetnosy: + vstinner
2015年09月09日 13:07:57Tim.Tisdallcreate

AltStyle によって変換されたページ (->オリジナル) /