- if (rrcp->rrcp_proto==1 && rrcp->rrcp_opcode==0 && rrcp->rrcp_isreply){
- ND_PRINT((ndo, " downlink_port=%d, uplink_port=%d, uplink_mac=%s, vendor_id=%08x ,chip_id=%04x ",
- rrcp_hello->rrcp_downlink_port,
- rrcp_hello->rrcp_uplink_port,
- etheraddr_string(rrcp_hello->rrcp_uplink_mac),
- rrcp_hello->rrcp_vendor_id,
- rrcp_hello->rrcp_chip_id));
- }else if (rrcp->rrcp_opcode==1 || rrcp->rrcp_opcode==2 || rrcp->rrcp_proto==2){
- ND_PRINT((ndo, ", cookie=0x%08x%08x ",
- rrcp->cookie2, rrcp->cookie1));
+ if (rrcp_proto==1 && rrcp_opcode==0 &&
+ ((EXTRACT_U_1(cp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_ISREPLY)){
+ ND_TCHECK_4(cp + RRCP_VENDOR_ID_OFFSET);
+ ND_PRINT((ndo, " downlink_port=%d, uplink_port=%d, uplink_mac=%s, vendor_id=%08x ,chip_id=%04x ",
+ EXTRACT_U_1(cp + RRCP_DOWNLINK_PORT_OFFSET),
+ EXTRACT_U_1(cp + RRCP_UPLINK_PORT_OFFSET),
+ etheraddr_string(ndo, cp + RRCP_UPLINK_MAC_OFFSET),
+ EXTRACT_BE_U_4(cp + RRCP_VENDOR_ID_OFFSET),
+ EXTRACT_BE_U_2(cp + RRCP_CHIP_ID_OFFSET)));
+ }else if (rrcp_opcode==1 || rrcp_opcode==2 || rrcp_proto==2){
+ ND_TCHECK_4(cp + RRCP_COOKIE2_OFFSET);
+ ND_PRINT((ndo, ", cookie=0x%08x%08x ",
+ EXTRACT_BE_U_4(cp + RRCP_COOKIE2_OFFSET),
+ EXTRACT_BE_U_4(cp + RRCP_COOKIE1_OFFSET)));