| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #ifndef DF_BPF_COMMON_H
- #define DF_BPF_COMMON_H
- // 消息类型
- enum message_type {
- MSG_UNKNOWN,
- // L7协议推断数据类型是请求
- MSG_REQUEST,
- // L7协议推断数据类型是回应
- MSG_RESPONSE,
- // HTTP2 request message end marker
- MSG_REQUEST_END,
- // HTTP2 response message end marker
- MSG_RESPONSE_END,
- // 无法推断协议类型,先在map中存储等下一次的数据
- // 获取后两者合并,再进行判断。主要场景用于MySQL,Kafka
- // 读数据的行为先读取4字节数据后再读取剩下的数据,要想进行
- // 正确的协议判断需要合并这两部分数据才可以。
- MSG_PRESTORE,
- // 对于l7的协议推断需要再确认逻辑。
- MSG_RECONFIRM,
- // 用于信息相关清理,一般用于socket信息清除
- MSG_CLEAR
- };
- // 数据流方向
- enum traffic_direction {
- T_EGRESS,
- T_INGRESS,
- };
- // 数据协议
- enum traffic_protocol {
- PROTO_UNKNOWN = 0,
- PROTO_ORTHER = 1,
- PROTO_HTTP1 = 20,
- PROTO_HTTP2 = 21,
- PROTO_TLS_HTTP1 = 22,
- PROTO_TLS_HTTP2 = 23,
- PROTO_DUBBO = 40,
- PROTO_SOFARPC = 43,
- PROTO_MYSQL = 60,
- PROTO_POSTGRESQL = 61,
- PROTO_REDIS = 80,
- PROTO_KAFKA = 100,
- PROTO_MQTT = 101,
- PROTO_DNS = 120,
- PROTO_NUM = 130
- };
- struct protocol_message_t {
- enum traffic_protocol protocol;
- enum message_type type;
- };
- //deepclash
- //enum {
- // TASK_COMM_LEN = 16,
- //};
- enum code_type {
- CodeTypeUnknown = -1,
- CodeTypeWaitCheck = 0,
- CodeTypePHP = 1001,
- CodeTypeJava = 1002,
- CodeTypeJavaAot = 1102,
- CodeTypePython = 1003,
- CodeTypeDotNet = 1004,
- CodeTypeNode = 1005,
- CodeTypeGo = 1006,
- CodeTypeC = 1007,
- CodeTypeNetCore = 1008,
- CodeTypeNetCoreAot = 1108,
- CodeTypeLua = 1009,
- CodeTypeJavaC = 1010,
- CodeTypeRuby = 1012
- };
- #endif /* DF_BPF_COMMON_H */
|