# Copyright 2018 Netflix, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from include/net/tcp_states.h: tcpstate = {} tcpstate[1] = 'ESTABLISHED' tcpstate[2] = 'SYN_SENT' tcpstate[3] = 'SYN_RECV' tcpstate[4] = 'FIN_WAIT1' tcpstate[5] = 'FIN_WAIT2' tcpstate[6] = 'TIME_WAIT' tcpstate[7] = 'CLOSE' tcpstate[8] = 'CLOSE_WAIT' tcpstate[9] = 'LAST_ACK' tcpstate[10] = 'LISTEN' tcpstate[11] = 'CLOSING' tcpstate[12] = 'NEW_SYN_RECV' # from include/net/tcp.h: TCPHDR_FIN = 0x01 TCPHDR_SYN = 0x02 TCPHDR_RST = 0x04 TCPHDR_PSH = 0x08 TCPHDR_ACK = 0x10 TCPHDR_URG = 0x20 TCPHDR_ECE = 0x40 TCPHDR_CWR = 0x80 def flags2str(flags): arr = [] if flags & TCPHDR_FIN: arr.append("FIN") if flags & TCPHDR_SYN: arr.append("SYN") if flags & TCPHDR_RST: arr.append("RST") if flags & TCPHDR_PSH: arr.append("PSH") if flags & TCPHDR_ACK: arr.append("ACK") if flags & TCPHDR_URG: arr.append("URG") if flags & TCPHDR_ECE: arr.append("ECE") if flags & TCPHDR_CWR: arr.append("CWR") return "|".join(arr)