code: func labelDecode(data []byte) (uint32, error) {
  	if len(data) < 3 {
  		return 0, NewMessageError(BGP_ERROR_UPDATE_MESSAGE_ERROR, BGP_ERROR_SUB_MALFORMED_ATTRIBUTE_LIST, nil, "Not all Label bytes available")
  	}
  	return uint32(data[0])<<16 | uint32(data[1])<<8 | uint32(data[2]), nil
  }
docs: //
  // I-D bess-evpn-overlay-01
  //
  // 5.1.3 Constructing EVPN BGP Routes
  //
  // For the balance of this memo, the MPLS label field will be
  // referred to as the VNI/VSID field. The VNI/VSID field is used for
  // both local and global VNIs/VSIDs, and for either case the entire 24-
  // bit field is used to encode the VNI/VSID value.
  //
  // We can't use type MPLSLabelStack for EVPN NLRI, because EVPN NLRI's MPLS
  // field can be filled with VXLAN VNI. In that case, we must avoid modifying
  // bottom of stack bit.
  //