I have been reading about CGN. Though similar to NAT it is used by service providers to route traffic without the need for the a public IP address. But when the packet leaves the ISP to the public internet, it does need a public IP address. So how exactly does CGN help save IP addresses. Or what are the other advantages of CGN.
For without CGN (but NAT + PAT) the packet cycle is:
customer device -> router (NAT - private to public) -> public internet -> server (maybe a DNAT here)
with CGN this changes to
customer device -> router (NAT - private to public) -> ISP router (CGN here) -> packet travels through the ISP -> NAT (CGN address -> public ) -> public internet -> server
So how is having an additional layer of NATing helping the case ?