/* Optional External Data: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ext RouterID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ext Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ext Autonomous System Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Route Tag | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ext Protocol | Ext Flags | External Metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | External Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  */
void dissect_eigrp_ipx_tlv(proto_item *ti, proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, guint16 tlv)
/* Optional External Data: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ext RouterID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ext Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ext Autonomous System Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Route Tag | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ext Protocol | Ext Flags | External Metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | External Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  */
void dissect_eigrp_ipx_tlv(proto_item *ti, proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, guint16 tlv)
{
    int offset      = 0;
    int unreachable = FALSE;
    offset = dissect_eigrp_nexthop(tree, tvb, EIGRP_AF_IPX, offset);
    if ((tlv & EIGRP_TLV_TYPEMASK) == EIGRP_TLV_EXTERNAL) {
        offset = dissect_eigrp_ipx_extdata(tree, tvb, offset);
    }
    offset = dissect_eigrp_legacy_metric(tree, tvb, offset);
    dissect_eigrp_ipx_addrs(ti, tree, tvb, pinfo, offset, unreachable);
}