From 2a888a106da39f1d5e280417e48a05341a41f4dd Mon Sep 17 00:00:00 2001 From: Zeling Feng Date: Tue, 9 Mar 2021 17:58:02 -0800 Subject: Give TCP flags a dedicated type - Implement Stringer for it so that we can improve error messages. - Use TCPFlags through the code base. There used to be a mixed usage of byte, uint8 and int as TCP flags. PiperOrigin-RevId: 361940150 --- pkg/tcpip/header/tcp.go | 28 +++++++++++++++++++++------- pkg/tcpip/header/tcp_test.go | 20 ++++++++++++++++++++ 2 files changed, 41 insertions(+), 7 deletions(-) (limited to 'pkg/tcpip/header') diff --git a/pkg/tcpip/header/tcp.go b/pkg/tcpip/header/tcp.go index 4c6f808e5..adc835d30 100644 --- a/pkg/tcpip/header/tcp.go +++ b/pkg/tcpip/header/tcp.go @@ -45,9 +45,23 @@ const ( TCPMaxSACKBlocks = 4 ) +// TCPFlags is the dedicated type for TCP flags. +type TCPFlags uint8 + +// String implements Stringer.String. +func (f TCPFlags) String() string { + flagsStr := []byte("FSRPAU") + for i := range flagsStr { + if f&(1<