Actually there can be two kind of messages if you are using Diameter protocol.
Diameter has its own messages ( Like DWR-DWA, CER-CEA and DPR-DPA and so on) This is called Base protocol messages.
Application Specific messages (Eg. for Gx Application CCR-I, U, T and in case of S6A interface ULR-ULA and so on). Here DIAMETER's task is to encapsulate those application messages and carry it further.
Now lets first talk about AVP's which is mandatory for all base protocol messages:
After Diameter Header the AVP's are:
1. Origin-Host
2. Origin-Realm
These two AVP's should be present with all base messages. Addition to that for the first (CER-CEA) Diameter exchange of messages Host-Ip-Address is also must.
Specifically it's difficult to explain what are the mandatory avp's are for all interfaces. So going to tell you those avp's which is mandatory to all messages. Kind of Generic.
After Diameter Header the AVP's are:
1. Session-Id
2. Auth-Application-Id
3. Origin-Host
4. Origin-Realm
In request message Destination-Realm is mandatory but not in Answer message.