Skip to content

Commit 8f89f28

Browse files
authored
Merging docs changes from PyTCP_2_7 (#23)
* Working on docs * Working on docs * Update README.md * Update README.md * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Adding CI workflow * Updated workflow name * Testing workflows * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Working on docs * Update ci.yml * Update ci.yml * Update ci.yml * Create publish.yml * Update pyproject.toml * Working on workflows * Working on workflows * Working on docs * Changed version to 2.7.3 * Playing with CI * Playing with CI * Playing with CI * Working on proper typing unit test so MyPy is happy. * Enabled MyPy check for unit and integration tests * Version 2.7.4 -> 2.7.5 * Updated readme to point for images to pytcp.io * Https -> Http for pytcp.io hosted images. Co-authored-by: Sebastian Majewski <[email protected]>
1 parent 38a7049 commit 8f89f28

File tree

2 files changed

+60
-60
lines changed

2 files changed

+60
-60
lines changed

README.md

+59-59
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
### The TCP/IP stack written in Python
33
<br>
44

5-
[![GitHub release](https://img.shields.io/github/v/release/ccie18643/PyTCP)](https://github.com/ccie18643/PyTCP/releases)
6-
[![OS](https://img.shields.io/badge/os-Linux-blue)](https://kernel.org)
7-
[![Supported Versions](https://img.shields.io/pypi/pyversions/PyTCP.svg)](https://pypi.org/project/PyTCP)
8-
[![GitHub License](https://img.shields.io/badge/license-GPL--3.0-yellowgreen)](https://github.com/ccie18643/PyTCP/blob/master/LICENSE)
9-
[![CI](https://github.com/ccie18643/PyTCP/actions/workflows/ci.yml/badge.svg)](https://github.com/ccie18643/PyTCP/actions/workflows/ci.yml)
5+
[![GitHub release](http://img.shields.io/github/v/release/ccie18643/PyTCP)](http://github.com/ccie18643/PyTCP/releases)
6+
[![OS](http://img.shields.io/badge/os-Linux-blue)](http://kernel.org)
7+
[![Supported Versions](http://img.shields.io/pypi/pyversions/PyTCP.svg)](http://pypi.org/project/PyTCP)
8+
[![GitHub License](http://img.shields.io/badge/license-GPL--3.0-yellowgreen)](http://pytcp.io/LICENSE)
9+
[![CI](http://github.com/ccie18643/PyTCP/actions/workflows/ci.yml/badge.svg)](http://github.com/ccie18643/PyTCP/actions/workflows/ci.yml)
1010

11-
[![GitHub watchers](https://img.shields.io/github/watchers/ccie18643/PyTCP.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/ccie18643/PyTCP/watchers/)
12-
[![GitHub forks](https://img.shields.io/github/forks/ccie18643/PyTCP.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/ccie18643/PyTCP/network/)
13-
[![GitHub stars](https://img.shields.io/github/stars/ccie18643/PyTCP.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/ccie18643/PyTCP/stargazers/)
11+
[![GitHub watchers](http://img.shields.io/github/watchers/ccie18643/PyTCP.svg?style=social&label=Watch&maxAge=2592000)](http://GitHub.com/ccie18643/PyTCP/watchers/)
12+
[![GitHub forks](http://img.shields.io/github/forks/ccie18643/PyTCP.svg?style=social&label=Fork&maxAge=2592000)](http://GitHub.com/ccie18643/PyTCP/network/)
13+
[![GitHub stars](http://img.shields.io/github/stars/ccie18643/PyTCP.svg?style=social&label=Star&maxAge=2592000)](http://GitHub.com/ccie18643/PyTCP/stargazers/)
1414

1515
<br>
1616

@@ -25,8 +25,8 @@ I welcome any contributions and help from anyone interested in network programmi
2525
I still need to fix.
2626

2727
Please feel free to check my two other related projects:
28-
- [RusTCP](https://github.com/ccie18643/RusTCP) - Attempt to rewrite some of PyTCP funcionality in Rust and use it to create IPv6/SRv6 lab router.
29-
- [SeaTCP](https://github.com/ccie18643/SeaTCP) - Attempt to create low latency stack using C and Assembly languages.
28+
- [RusTCP](http://github.com/ccie18643/RusTCP) - Attempt to rewrite some of PyTCP funcionality in Rust and use it to create IPv6/SRv6 lab router.
29+
- [SeaTCP](http://github.com/ccie18643/SeaTCP) - Attempt to create low latency stack using C and Assembly languages.
3030

3131
---
3232

@@ -57,11 +57,11 @@ directly by calling one of the ```_*_phtx()``` methods from ```PacketHandler```
5757

5858
### Clonning PyTCP from the GitHub repository
5959

60-
In most cases, PyTCP should be cloned directly from the [GitHub repository](https://github.com/ccie18643/PyTCP),
60+
In most cases, PyTCP should be cloned directly from the [GitHub repository](http://github.com/ccie18643/PyTCP),
6161
as this type of installation provides full development and testing environment.
6262

6363
```shell
64-
git clone https://github.com/ccie18643/PyTCP
64+
git clone http://github.com/ccie18643/PyTCP
6565
```
6666

6767
After cloning, we can run one of the included examples:
@@ -80,7 +80,7 @@ To fine-tune various stack operational parameters, please edit the ```pytcp/conf
8080

8181
### Installing PyTCP from the PyPi repository
8282

83-
PyTCP can also be installed as a regular module from the [PyPi repository](https://pypi.org/project/PyTCP/).
83+
PyTCP can also be installed as a regular module from the [PyPi repository](http://pypi.org/project/PyTCP/).
8484

8585
```console
8686
python -m pip install PyTCP
@@ -200,17 +200,17 @@ stack.stop()
200200

201201
#### Several ping packets and two monkeys were delivered via TCP over the IPv6 protocol.
202202

203-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_00.png)
204-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_01.png)
205-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_02.png)
206-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_03.png)
207-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_04.png)
208-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_05.png)
209-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_06.png)
210-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_07.png)
211-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_08.png)
212-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_09.png)
213-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/malpi_10.png)
203+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_00.png)
204+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_01.png)
205+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_02.png)
206+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_03.png)
207+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_04.png)
208+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_05.png)
209+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_06.png)
210+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_07.png)
211+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_08.png)
212+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_09.png)
213+
![Sample PyTCP log output](http://pytcp.io/docs/images/malpi_10.png)
214214

215215
<br>
216216

@@ -225,11 +225,11 @@ stack.stop()
225225
- Stack doesn't receive any Neighbor Advertisement for the address it generated, so it assigns it to its interface.
226226
- After all the addresses are assigned, stack sends out one more Multicast Listener report listing all the multicast addresses it wants to listen to.
227227

228-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ipv6_nd_dad_01.png)
229-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ipv6_nd_dad_02.png)
230-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ipv6_nd_dad_03.png)
231-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ipv6_nd_dad_04.png)
232-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ipv6_nd_dad_05.png)
228+
![Sample PyTCP log output](http://pytcp.io/docs/images/ipv6_nd_dad_01.png)
229+
![Sample PyTCP log output](http://pytcp.io/docs/images/ipv6_nd_dad_02.png)
230+
![Sample PyTCP log output](http://pytcp.io/docs/images/ipv6_nd_dad_03.png)
231+
![Sample PyTCP log output](http://pytcp.io/docs/images/ipv6_nd_dad_04.png)
232+
![Sample PyTCP log output](http://pytcp.io/docs/images/ipv6_nd_dad_05.png)
233233

234234
<br>
235235

@@ -238,10 +238,10 @@ stack.stop()
238238
- Peer notices the inconsistency in packet SEQ numbers and sends out a 'fast retransmit request'.
239239
- Stack receives the request and retransmits the lost packet.
240240

241-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_tx_fst_ret_01.png)
242-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_tx_fst_ret_02.png)
243-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_tx_fst_ret_03.png)
244-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_tx_fst_ret_04.png)
241+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_tx_fst_ret_01.png)
242+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_tx_fst_ret_02.png)
243+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_tx_fst_ret_03.png)
244+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_tx_fst_ret_04.png)
245245

246246
<br>
247247

@@ -253,12 +253,12 @@ stack.stop()
253253
- Stack receives the lost packet, pulls all the packets stored in the out-of-order queue, and processes them.
254254
- Stacks sends out ACK packet to acknowledge the latest packets pulled from the queue.
255255

256-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_ooo_ret_01.png)
257-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_ooo_ret_02.png)
258-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_ooo_ret_03.png)
259-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_ooo_ret_04.png)
260-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_ooo_ret_05.png)
261-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_ooo_ret_06.png)
256+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_ooo_ret_01.png)
257+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_ooo_ret_02.png)
258+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_ooo_ret_03.png)
259+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_ooo_ret_04.png)
260+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_ooo_ret_05.png)
261+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_ooo_ret_06.png)
262262

263263
<br>
264264

@@ -268,10 +268,10 @@ stack.stop()
268268
- Stack echoes the data back.
269269
- Peer closes the connection.
270270

271-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_fsm_srv_01.png)
272-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_fsm_srv_02.png)
273-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_fsm_srv_03.png)
274-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_fsm_srv_04.png)
271+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_fsm_srv_01.png)
272+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_fsm_srv_02.png)
273+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_fsm_srv_03.png)
274+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_fsm_srv_04.png)
275275

276276
<br>
277277

@@ -281,10 +281,10 @@ stack.stop()
281281
- Peer echoes the data back.
282282
- Stack closes the connection.
283283

284-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_fsm_clt_01.png)
285-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_fsm_clt_02.png)
286-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_fsm_clt_03.png)
287-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/tcp_fsm_clt_04.png)
284+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_fsm_clt_01.png)
285+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_fsm_clt_02.png)
286+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_fsm_clt_03.png)
287+
![Sample PyTCP log output](http://pytcp.io/docs/images/tcp_fsm_clt_04.png)
288288

289289
<br>
290290

@@ -293,9 +293,9 @@ stack.stop()
293293
- The second screenshot shows the stack with the sanity check turned on. A malformed ICMPv6 packet is discarded before being passed to the ICMPv6 protocol parser.
294294
- The third screenshot shows the malformed packet. The number of MA records field has been set to 777 even though the packet contains only one record.
295295

296-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/pre_sanity_chk_01.png)
297-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/pre_sanity_chk_02.png)
298-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/pre_sanity_chk_03.png)
296+
![Sample PyTCP log output](http://pytcp.io/docs/images/pre_sanity_chk_01.png)
297+
![Sample PyTCP log output](http://pytcp.io/docs/images/pre_sanity_chk_02.png)
298+
![Sample PyTCP log output](http://pytcp.io/docs/images/pre_sanity_chk_03.png)
299299

300300
<br>
301301

@@ -304,10 +304,10 @@ stack.stop()
304304
- One of the IP addresses (192.168.9.102) is already taken, so the stack gets notified about it and skips it.
305305
- The rest of the IP addresses are free, so stack claims them by sending ARP Announcement for each of them.
306306

307-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ip_arp_probe_01.png)
308-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ip_arp_probe_02.png)
309-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ip_arp_probe_03.png)
310-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ip_arp_probe_04.png)
307+
![Sample PyTCP log output](http://pytcp.io/docs/images/ip_arp_probe_01.png)
308+
![Sample PyTCP log output](http://pytcp.io/docs/images/ip_arp_probe_02.png)
309+
![Sample PyTCP log output](http://pytcp.io/docs/images/ip_arp_probe_03.png)
310+
![Sample PyTCP log output](http://pytcp.io/docs/images/ip_arp_probe_04.png)
311311

312312
<br>
313313

@@ -316,8 +316,8 @@ stack.stop()
316316
- Stack responds by sending an ARP Reply packet (stack doesn't need to send out its request since it already made a note of the host's MAC from the host's request).
317317
- Host sends ping packets, and stack responds to them.
318318

319-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/arp_ping_01.png)
320-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/arp_ping_02.png)
319+
![Sample PyTCP log output](http://pytcp.io/docs/images/arp_ping_01.png)
320+
![Sample PyTCP log output](http://pytcp.io/docs/images/arp_ping_02.png)
321321

322322
<br>
323323

@@ -328,7 +328,7 @@ stack.stop()
328328
- UDP datagram is passed to the IP protocol handler, which creates an IP packet, and after checking that it exceeds the link, MTU fragments it into three separate IP packets.
329329
- IP packets are encapsulated in Ethernet frames and put on a TX ring.
330330

331-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ip_udp_frag_01.png)
332-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ip_udp_frag_02.png)
333-
![Sample PyTCP log output](https://github.com/ccie18643/PyTCP/blob/master/docs/images/ip_udp_frag_03.png)
331+
![Sample PyTCP log output](http://pytcp.io/docs/images/ip_udp_frag_01.png)
332+
![Sample PyTCP log output](http://pytcp.io/docs/images/ip_udp_frag_02.png)
333+
![Sample PyTCP log output](http://pytcp.io/docs/images/ip_udp_frag_03.png)
334334

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "PyTCP"
7-
version = "2.7.5"
7+
version = "2.7.6"
88
description = "TCP/IP stack written in Python."
99
readme = "README.md"
1010
authors = [{ name = "Sebastian Majewski", email = "[email protected]" }]

0 commit comments

Comments
 (0)