I try to create an SOH by hand, and for this parameter, i see it has a 2 byte for value. That is it has 2 as length for the TLV 32813.
I am lookin into the SDK and seeing that there is a check:
unsigned short avpLen = IPAddress::NetworkToHostOrder((short)(avp->length));
if ((avpLen < sizeof(HcapAvp)) ...
in file AMTPosture. So, in my case, avpLen would be 2, and sizeof woudl be 4. And i am seeing an error due to this:
throw gcnew ApplicationException("Data is corrupted: Length of HCAP AVP is incorrect.");
My question: Is this intended? Am i wrong with something?
Using latest SDK for AMT, downloaded on 10\3\2008 220.127.116.11_SDK_5.0
Could you explain this more? What are you trying to do? Which module/project/source file is this? What is your development environment? How are you building this code? which AMT version? etc
I try to learn more on AMT platform. Unfortunately i do not have a laptop capable of this so i had to play on my own.
I looked into the Intel AMT System Health Validator Sample. pdf version 4.0.6, June 2008 = (1) , downloaded the SDK 18.104.22.168 = (2), installed the SHV on a Server 2008. While looking through the sample SHV, it was not clear to me how you are constructing the SOH.
In (1), section Section 4, there is this line: "The fields are in TLV format." I understand by this that the Length field of a TLV represents the length of the value. Looking through the code in the SHV, i.e AMTPosture.cpp, line 29, the check (avpLen < sizeof (HcapAvp)) implies that either the length of value can not be less than 4 or that the system is not using TLVs as in (1) but AVPs. Trying with AVP idea (where the Length field includes the 4 bytes of Type+Length) made it work. Now you got my initial question reason and how i solved it. The trigger was line 49 of AMTPosture.cpp, where one can find that AVP are used, not TLVs.
I consider this thread closed. Appreciate your time and support.