티스토리 뷰
vip hash lookup시 조회 안되는 문제 해결
- key 계산시 잘못된 key length 문제였음.
- attribute packed가 없어서 2바이트가 추가 됨.
- stack에 해시 테이블을 두면 이 2 바이트가 0이지만 heap 에 두면 키의 끝 2바이트에 쓰레기 값.
- vip struct가 8바이트가 아닌 6바이트로 처리되도록 attribute packed 붙임.
/* packed가 안되어 있으면 끝에 0이 아닌 바이트가 더 붙어서
cmp 가 비정상 동작함.
4바이트로 안떨어지는 ipv4_vip의 경우 packed 필요.
(sizeof(ipv4_vip)가 8이 아닌 6임을 보장 받으려면 packed 필요)
*/
typedef struct ipv4_vip{
uint32_t ip;
uint16_t port;
} __attribute__((__packed__)) ipv4_vip_t;
'LB > 개발' 카테고리의 다른 글
event manager 에 대해 (0) | 2018.06.22 |
---|---|
dpdk 메모리 디버깅은 전용 dpdk-valgrind로 (0) | 2018.03.31 |