mirror of
				https://github.com/yggdrasil-network/water.git
				synced 2025-11-04 03:05:10 +03:00 
			
		
		
		
	waterutil: doc.go: added packet format diagrams
This commit is contained in:
		
							parent
							
								
									1c41478c90
								
							
						
					
					
						commit
						f2108081c5
					
				
					 1 changed files with 50 additions and 1 deletions
				
			
		| 
						 | 
					@ -1,2 +1,51 @@
 | 
				
			||||||
// Package waterutil provides utility functions for interpreting MAC farme headers and IP packet headers. It defines some constants such as protocol numbers and ethernet frame types. Use waterutil along with package water to work with TUN/TAP interface data.
 | 
					/*
 | 
				
			||||||
 | 
					Package waterutil provides utility functions for interpreting TUN/TAP MAC farme headers and IP packet headers. It defines some constants such as protocol numbers and ethernet frame types. Use waterutil along with package water to work with TUN/TAP interface data.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Frames/packets are interpreted in following format (as in TUN/TAP devices):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TAP - MAC Frame:
 | 
				
			||||||
 | 
					   No Tagging
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  | Octet |00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|...
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  | Field | MAC Destination |   MAC  Source   |EType| Payload        
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Single-Tagged -- Octets [12,13] == {0x81, 0x00} 
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  | Octet |00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|...
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  | Field | MAC Destination |   MAC  Source   |    Tag    | Payload
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Double-Tagged -- Octets [12,13] == {0x88, 0xA8}
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  | Octet |00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|...
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  | Field | MAC Destination |   MAC  Source   | Outer Tag | Inner Tag | Payload        
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TUN - IPv4 Packet:
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------------------------------------------+
 | 
				
			||||||
 | 
					  | Offsets | Octet |           0           |           1           |           2           |           3           |
 | 
				
			||||||
 | 
					  |  Octet  |  Bit  |00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------------------------------------------+
 | 
				
			||||||
 | 
					  |    0    |   0   |  Version  |    IHL    |      DSCP       | ECN |                 Total  Length                 |
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------------------------------------------+
 | 
				
			||||||
 | 
					  |    4    |  32   |                Identification                 | Flags  |           Fragment Offset            |
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------------------------------------------+
 | 
				
			||||||
 | 
					  |    8    |  64   |     Time To Live      |       Protocol        |                Header Checksum                |
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------------------------------------------+
 | 
				
			||||||
 | 
					  |   12    |  96   |                                       Source IP Address                                       |
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------------------------------------------+
 | 
				
			||||||
 | 
					  |   16    |  128  |                                    Destination IP Address                                     |
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------------------------------------------+
 | 
				
			||||||
 | 
					  |   20    |  160  |                                     Options (if IHL > 5)                                      |
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------------------------------------------+
 | 
				
			||||||
 | 
					  |   24    |  192  |                                                                                               |
 | 
				
			||||||
 | 
					  |   30    |  224  |                                            Payload                                            |
 | 
				
			||||||
 | 
					  |   ...   |  ...  |                                                                                               |
 | 
				
			||||||
 | 
					  +-----------------------------------------------------------------------------------------------------------------+
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
package waterutil
 | 
					package waterutil
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue