티스토리 뷰

LB/개발

attribute packed 관련 버그픽스

bramach 2018. 3. 31. 22:44

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함