Hi Stephen,
Is anyone able to provide more details about the F5 implementation of CARP? There is surprisingly little detail I can find. SOL11362 briefly describes how, but gives no information about what it is doing. There is a link to the IETF draft, but as is mentioned else where in the forum, the BigIP implementation is different.
Functionally, the LTM implementation should be the same as the IETF draft. If you need more detail, I suggest opening a case with F5 Support to get more info.
SOL11362 currently says it is relevant up to v11.1. Is the site outdated, or is it not applicable to 11.2?
It is still relevant for 11.2. I've requested to have SOL11362 updated to include 11.2
The example iRule says "persist hash [HTTP::uri]". What does the "persist carp" command do, and why is this not used?
I'm not certain how hash and CARP persistence differ. I believe CARP may handle member changes better by only having distribute 1/x connections or requests (where x is the number of members being hashed across).
That said, 'persist hash [HTTP::uri]' in the solution is wrong per Spark's post (http://devcentral.f5.com/Default.aspx?tabid=53&view=topic&postid=1167334&ptarget=1145327). It should be 'persist carp $hash_token'. I've requested to have SOL11362 updated to correct this.
Is the CARP load factor function implemented, eg using the pool member ratio field?
We don't support pool member ratios with CARP in current released versions, but there is a hotfix which you can reference:
BZ386769 - Modify CARP persistence to utilize any pool mbr ratio/bias
Is the hash function available to iRules?
I don't believe so. What is your use case?
Aaron