diff --git a/docs/source/pcapkit/protocols/application/ftp.rst b/docs/source/pcapkit/protocols/application/ftp.rst index 63c8582fa..1a7043996 100644 --- a/docs/source/pcapkit/protocols/application/ftp.rst +++ b/docs/source/pcapkit/protocols/application/ftp.rst @@ -4,9 +4,10 @@ FTP - File Transfer Protocol .. module:: pcapkit.protocols.application.ftp :mod:`pcapkit.protocols.application.ftp` contains -:class:`~pcapkit.protocols.application.ftp.FTP` only, +:class:`~pcapkit.protocols.application.ftp.FTP`, which implements extractor for File Transfer Protocol -(FTP) [*]_. +(FTP) [*]_, and :class:`~pcapkit.protocols.application.ftp.FTP_DATA` +for its data channel. .. autoclass:: pcapkit.protocols.application.ftp.FTP :no-members: diff --git a/docs/source/pcapkit/protocols/application/index.rst b/docs/source/pcapkit/protocols/application/index.rst index f909d8e97..9208500f5 100644 --- a/docs/source/pcapkit/protocols/application/index.rst +++ b/docs/source/pcapkit/protocols/application/index.rst @@ -32,4 +32,4 @@ Protocol Registry .. data:: pcapkit.protocols.application.APPTYPE - alias of :class:`pcapkit.const.reg.apptype.AppType` + alias of :class:`pcapkit.const.reg.apptype.apptype.AppType` diff --git a/docs/source/pcapkit/protocols/application/ngap.rst b/docs/source/pcapkit/protocols/application/ngap.rst index f22faf03e..c8be61e1f 100644 --- a/docs/source/pcapkit/protocols/application/ngap.rst +++ b/docs/source/pcapkit/protocols/application/ngap.rst @@ -4,9 +4,14 @@ NGAP - NG Application Protocol .. module:: pcapkit.protocols.application.ngap :mod:`pcapkit.protocols.application.ngap` contains -:class:`~pcapkit.protocols.application.ngap.NGAP` only, +:class:`~pcapkit.protocols.application.ngap.NGAP`, which implements extractor for the NG Application Protocol -(NGAP) [*]_, as specified in 3GPP TS 38.413. +(NGAP) [*]_, as specified in 3GPP TS 38.413, and the four enumerations its +data models report with: +:class:`~pcapkit.protocols.application.ngap.PDUKind`, +:class:`~pcapkit.protocols.application.ngap.Criticality`, +:class:`~pcapkit.protocols.application.ngap.ProcedureCode` and +:class:`~pcapkit.protocols.application.ngap.ProtocolIE`. NGAP is the control plane between a 5G RAN node (gNB or ng-eNB) and an AMF. It runs over SCTP and is named by the DATA chunk's *payload protocol diff --git a/docs/source/pcapkit/protocols/application/rarp.rst b/docs/source/pcapkit/protocols/application/rarp.rst index 7350e660a..19d77bda3 100644 --- a/docs/source/pcapkit/protocols/application/rarp.rst +++ b/docs/source/pcapkit/protocols/application/rarp.rst @@ -4,8 +4,9 @@ RARP/DRARP - (Dynamic) Reverse Address Resolution Protocol .. module:: pcapkit.protocols.application.rarp :mod:`pcapkit.protocols.application.rarp` contains -:class:`~pcapkit.protocols.application.rarp.RARP` only, -which implements extractor for (Dynamic) Reverse +:class:`~pcapkit.protocols.application.rarp.RARP` and +:class:`~pcapkit.protocols.application.rarp.DRARP`, +which implement extractors for (Dynamic) Reverse Address Resolution Protocol (RARP/DRARP) [*]_, whose structure is described as below: diff --git a/docs/source/pcapkit/protocols/index.rst b/docs/source/pcapkit/protocols/index.rst index da2c43b03..130d05b19 100644 --- a/docs/source/pcapkit/protocols/index.rst +++ b/docs/source/pcapkit/protocols/index.rst @@ -63,7 +63,7 @@ from given information. The class hierarchy of :mod:`pcapkit.protocols`: end subgraph application [Application Layer] - Application --> HTTP & FTP & OSPF & RARP + Application --> HTTP & FTP & NGAP & OSPF & RARP subgraph http [HTTP Family] HTTP --> h1["HTTP/1.*"] & h2["HTTP/2"] @@ -108,14 +108,11 @@ from given information. The class hierarchy of :mod:`pcapkit.protocols`: click Ethernet "/pcapkit/protocols/link/ethernet.html#pcapkit.protocols.link.ethernet.Ethernet" click L2TP "/pcapkit/protocols/link/l2tp.html#pcapkit.protocols.link.l2tp.L2TP" click L2TPv2 "/pcapkit/protocols/link/l2tpv2.html#pcapkit.protocols.link.l2tpv2.L2TPv2" - click OSPF "/pcapkit/protocols/application/ospf.html#pcapkit.protocols.application.ospf.OSPF" click VLAN "/pcapkit/protocols/link/vlan.html#pcapkit.protocols.link.vlan.VLAN" click C_Tag "/pcapkit/protocols/link/c_tag.html#pcapkit.protocols.link.c_tag.C_Tag" click S_Tag "/pcapkit/protocols/link/s_tag.html#pcapkit.protocols.link.s_tag.S_Tag" click ARP "/pcapkit/protocols/link/arp.html#pcapkit.protocols.link.arp.ARP" click InARP "/pcapkit/protocols/link/arp.html#pcapkit.protocols.link.arp.InARP" - click RARP "/pcapkit/protocols/application/rarp.html#pcapkit.protocols.application.rarp.RARP" - click DRARP "/pcapkit/protocols/application/rarp.html#pcapkit.protocols.application.rarp.DRARP" click Internet "/pcapkit/protocols/internet/internet.html#pcapkit.protocols.internet.internet.Internet" click AH "/pcapkit/protocols/internet/ah.html#pcapkit.protocols.internet.ah.AH" @@ -143,6 +140,10 @@ from given information. The class hierarchy of :mod:`pcapkit.protocols`: click h2 "/pcapkit/protocols/application/httpv2.html#pcapkit.protocols.application.httpv2.HTTP" click FTP "/pcapkit/protocols/application/ftp.html#pcapkit.protocols.application.ftp.FTP" click FTP_DATA "/pcapkit/protocols/application/ftp.html#pcapkit.protocols.application.ftp.FTP_DATA" + click NGAP "/pcapkit/protocols/application/ngap.html#pcapkit.protocols.application.ngap.NGAP" + click OSPF "/pcapkit/protocols/application/ospf.html#pcapkit.protocols.application.ospf.OSPF" + click RARP "/pcapkit/protocols/application/rarp.html#pcapkit.protocols.application.rarp.RARP" + click DRARP "/pcapkit/protocols/application/rarp.html#pcapkit.protocols.application.rarp.DRARP" click Raw "/pcapkit/protocols/misc/raw.html#pcapkit.protocols.misc.raw.Raw" click NoPayload "/pcapkit/protocols/misc/null.html#pcapkit.protocols.misc.null.NoPayload" diff --git a/docs/source/pcapkit/protocols/internet/esp.rst b/docs/source/pcapkit/protocols/internet/esp.rst index b2c1ae4a2..b8de772c4 100644 --- a/docs/source/pcapkit/protocols/internet/esp.rst +++ b/docs/source/pcapkit/protocols/internet/esp.rst @@ -4,10 +4,10 @@ ESP - Encapsulating Security Payload .. module:: pcapkit.protocols.internet.esp :mod:`pcapkit.protocols.internet.esp` contains -:class:`~pcapkit.protocols.internet.esp.ESP` only, +:class:`~pcapkit.protocols.internet.esp.ESP`, which implements extractor for Encapsulating -Security Payload (ESP) [*]_, whose structure is -described as below: +Security Payload (ESP) [*]_, and the security association, algorithm and +status types documented below. The ESP structure is described as below: ======= ========= ===================== ============================================== Octets Bits Name Description diff --git a/docs/source/pcapkit/protocols/internet/ipx.rst b/docs/source/pcapkit/protocols/internet/ipx.rst index 715b314df..76472609f 100644 --- a/docs/source/pcapkit/protocols/internet/ipx.rst +++ b/docs/source/pcapkit/protocols/internet/ipx.rst @@ -12,7 +12,7 @@ as below: ======= ========= ====================== ===================================== Octets Bits Name Description ======= ========= ====================== ===================================== - 0 0 ``ipx.cksum`` Checksum + 0 0 ``ipx.chksum`` Checksum 2 16 ``ipx.len`` Packet Length (header includes) 4 32 ``ipx.count`` Transport Control (hop count) 5 40 ``ipx.type`` Packet Type diff --git a/docs/source/pcapkit/protocols/internet/mh.rst b/docs/source/pcapkit/protocols/internet/mh.rst index d81cbcd58..a60c5b060 100644 --- a/docs/source/pcapkit/protocols/internet/mh.rst +++ b/docs/source/pcapkit/protocols/internet/mh.rst @@ -19,13 +19,6 @@ Octets Bits Name Description 6 48 ``mh.data`` Message Data ======= ========= ================== =============================== -.. todo:: - - The CGA Parameters option (type 12) is the one registered mobility option - still on the generic handler. It is unreachable rather than unimplemented -- - see the Mobility Header section of :doc:`/contributing/pep` for the two faults involved, - both of which are in shared field machinery rather than here. - .. autoclass:: pcapkit.protocols.internet.mh.MH :no-members: :show-inheritance: diff --git a/docs/source/pcapkit/protocols/link/arp.rst b/docs/source/pcapkit/protocols/link/arp.rst index de437e5c8..e0fcb16e7 100644 --- a/docs/source/pcapkit/protocols/link/arp.rst +++ b/docs/source/pcapkit/protocols/link/arp.rst @@ -4,8 +4,9 @@ ARP/InARP - (Inverse) Address Resolution Protocol .. module:: pcapkit.protocols.link.arp :mod:`pcapkit.protocols.link.arp` contains -:class:`~pcapkit.protocols.link.arp.ARP` only, -which implements extractor for (Inverse) Address Resolution +:class:`~pcapkit.protocols.link.arp.ARP` and +:class:`~pcapkit.protocols.link.arp.InARP`, +which implement extractors for (Inverse) Address Resolution Protocol (ARP/InARP) [*]_, whose structure is described as below: diff --git a/docs/source/pcapkit/protocols/link/c_tag.rst b/docs/source/pcapkit/protocols/link/c_tag.rst index f3beaa7ea..be9d81a9b 100644 --- a/docs/source/pcapkit/protocols/link/c_tag.rst +++ b/docs/source/pcapkit/protocols/link/c_tag.rst @@ -12,7 +12,8 @@ Its structure, and all of its parsing and construction, come from :class:`~pcapkit.protocols.link.vlan.VLAN`; this class adds only the tag's own identity -- :attr:`~pcapkit.protocols.link.c_tag.C_Tag.name`, :attr:`~pcapkit.protocols.link.c_tag.C_Tag.alias`, -:attr:`~pcapkit.protocols.link.c_tag.C_Tag.info_name` -- and its registry index. +:attr:`~pcapkit.protocols.link.c_tag.C_Tag.info_name`, +:meth:`~pcapkit.protocols.link.c_tag.C_Tag.id` -- and its registry index. It has a module of its own, apart from :class:`~pcapkit.protocols.link.s_tag.S_Tag`, because the two are reached through diff --git a/docs/source/pcapkit/protocols/link/s_tag.rst b/docs/source/pcapkit/protocols/link/s_tag.rst index a3d2df4fa..f77f56f2c 100644 --- a/docs/source/pcapkit/protocols/link/s_tag.rst +++ b/docs/source/pcapkit/protocols/link/s_tag.rst @@ -11,7 +11,8 @@ Its structure, and all of its parsing and construction, come from :class:`~pcapkit.protocols.link.vlan.VLAN`; this class adds only the tag's own identity -- :attr:`~pcapkit.protocols.link.s_tag.S_Tag.name`, :attr:`~pcapkit.protocols.link.s_tag.S_Tag.alias`, -:attr:`~pcapkit.protocols.link.s_tag.S_Tag.info_name` -- and its registry index. +:attr:`~pcapkit.protocols.link.s_tag.S_Tag.info_name`, +:meth:`~pcapkit.protocols.link.s_tag.S_Tag.id` -- and its registry index. It has a module of its own, apart from :class:`~pcapkit.protocols.link.c_tag.C_Tag`, because the two are reached through diff --git a/docs/source/pcapkit/protocols/misc/index.rst b/docs/source/pcapkit/protocols/misc/index.rst index 3ef0bb0b0..2ae424fe8 100644 --- a/docs/source/pcapkit/protocols/misc/index.rst +++ b/docs/source/pcapkit/protocols/misc/index.rst @@ -8,7 +8,8 @@ Auxiliary Protocols :mod:`pcapkit.protocols.misc` contains the auxiliary protocol implementations. Such includes the :class:`~pcapkit.protocols.misc.raw.Raw` class for not-supported protocols, the :class:`~pcapkit.protocols.misc.null.NoPayload` class for -indication of empty payload, and PCAP header classes. +indication of empty payload, the PCAP header classes, and the PCAP-NG +:class:`~pcapkit.protocols.misc.pcapng.PCAPNG` class. .. toctree:: :maxdepth: 1 diff --git a/docs/source/pcapkit/protocols/protocol.rst b/docs/source/pcapkit/protocols/protocol.rst index c7cc7a9e3..b6dc2dab1 100644 --- a/docs/source/pcapkit/protocols/protocol.rst +++ b/docs/source/pcapkit/protocols/protocol.rst @@ -6,8 +6,17 @@ Root Protocol .. currentmodule:: pcapkit.protocols.protocol :mod:`pcapkit.protocols.protocol` contains -:class:`~pcapkit.protocols.protocol.Protocol` only, the abstract base class for -all protocol families, with pre-defined utility arguments and methods. +:class:`~pcapkit.protocols.protocol.Protocol`, an abstract base class with +pre-defined utility arguments and methods. Inherit it directly only to create a +new protocol stack; a new protocol in an existing layer subclasses that layer's +base class -- :class:`~pcapkit.protocols.link.link.Link`, +:class:`~pcapkit.protocols.internet.internet.Internet`, +:class:`~pcapkit.protocols.transport.transport.Transport` or +:class:`~pcapkit.protocols.application.application.Application` -- instead, c.f. +:doc:`/ext`. The built-in protocol families, those layer classes included, +derive from :class:`~pcapkit.protocols.protocol.ProtocolBase`, whose metaclass +is :class:`~pcapkit.protocols.protocol.ProtocolMeta`; both are listed under +Internal Definitions below. .. autoclass:: pcapkit.protocols.protocol.Protocol :no-members: