You are correct to use dhclient -P command to obtain PD. The contents of dhclient.conf is of little importance as it seems that Telus router ignores most (if not all) options passed. I suspect it is due to their system security policy. So you should be already getting a prefix from Telus. If you enable the verbose mode (option -v) on dhclient, you should be seeing something like:
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on Socket/eth1
Sending on Socket/eth1
PRC: Confirming active lease (INIT-REBOOT).
XMT: Forming Rebind, 0 ms elapsed.
XMT: X-- IA_PD e2:3b:79:92
XMT: | X-- Requested renew +3600
XMT: | X-- Requested rebind +5400
XMT: | | X-- IAPREFIX 2001:569:xxxx:xxxx::/56
XMT: | | | X-- Preferred lifetime +7200
XMT: | | | X-- Max lifetime +7500
XMT: V IA_PD appended.
XMT: Rebind on eth1, interval 990ms.
RCV: Reply message on eth1 from fe80::225:baff:fe51:93d0.
RCV: X-- IA_PD e2:3b:79:92
RCV: | X-- starts 1496634852
RCV: | X-- t1 - renew +7200
RCV: | X-- t2 - rebind +10800
RCV: | X-- [Options]
RCV: | | X-- IAPREFIX 2001:569:xxxx:xxxx::/56
RCV: | | | X-- Preferred lifetime 14400.
RCV: | | | X-- Max lifetime 86400.
RCV: X-- Server ID: 00:03:00:01:00:25:ba:51:93:d0
PRC: Bound to lease 00:03:00:01:00:25:ba:51:93:d0.
Look for the line RCV:| | X-- IAPREFIX 2001:569:xxxx:xxxx::/56, this is your prefix.
After that, dhclient is supposed to configure the local host accordingly. This is where the fun begins, because dhclient, out of the box, does not support configuration based on prefix only.
Since it is over a year from your question, I don't know whether you are still interested in the answer, maybe you have figured it out in the meantime. But I am happy to share with you my solution, just let me know.
As for the O flag: you are right that it is independent from M. When the O flag is set it means that the server can provide "other" stateless information, like nameservers, which Telus does provide.
Thanks for the reply. The problem is that Telus' edge routers don't respond to RS with an RA until after the DHCP solicit message is sent. In the case of pfsense, by design, it sends the RS first and waits for an RA before sending the DHCP solicit. According to Telus, the reason for this is "security". Some other ISPs have their edge routers configured similarly, and fortunately one of the pfsense users developed a fix for this, which also works on the Telus network.