People have suggested the vSR. Also look at the vMX from Juniper. I���ve done testing with it, it works great. Runs on KVM or VMWare. I���ve tested the latter but I���m sure KVM works fine too. You can get a 60 day fully featured trial from their site to have a play with.
Cisco ASR1000v (and ASR1000 hardware) are a bit naff as you cannot do ambiguous q-in-q for both inner and outer tags. You can either do ambiguous inner, OR outer, but not both at the same time. Every other serious BNG I���m aware of does this fine. You can work around it by pre-configuring all the outer VLANs you expect to see on every interface, but man that sucks.
I dunno what the cost of an ASR9001s is (the s is not plural, it is the half-sized version of the ASR9001) but if you want hardware Cisco, do that. Get a strong understanding of the protocols you run though, as you���ll have to defend your CPEs'/network's implementation etc. to Cisco TAC at some point when it breaks.
I���ve not played with IOS-XRv (Cisco���s vMX/vSR equivalent). I seem to remember they can���t do BNG on it yet though? I maybe be wrong/out of date on that. Last I checked (earlier this year) Cisco were pushing ASR1000v for BNG, anyway.
Whatever you do though, test the performance with your access provider - get some regulated UFB100 circuits from Chorus and make sure the scheduler resolution is good enough to drive it at the full speed - or make sure all your circuits are the modern ones.
--
Nathan Ward