The term netflow is very confusing. Because it means two different things. It means first the exporting process and also the metering process.
When we speak about traditional netflow, flexible netflow or metric mediation agent that is for metering. When we speak about netflow v5, v9 or IPFIX that is just protocol for exporting the information.
IPFIX the IETF standard for netflow made this distinction for metering and exporting processes. IPFIX got in its version field number 10 so someone speaks about that as netflow version 10. IPFIX is based on netflow version 9 – it is standardized version 9.
We have version 5 of netflow which has fixed flow record for export. But customers have different needs – some of them wants to support MPLS, some BGP, some IPv6. But we dont have these fields in version 5. Customers requires something flexible and extensible.
Netflow version 9 uses a templates. Templates is a structure where you specify fields you like to export and then send this template to the collector so the collector can decode the netflow. For example you need to export MAC address, you have to use netflow v9. However netflow version 9 is export protocol. It exports netflow cache based on template where you can specify and aggregate fields.
What we need is also flexible metering proccess. For that we use flexible netflow. With flexible netflow we can classify flow records based on key fields we specify in CLI. Key fields for flows are not fixed anymore. So flexible netflow allows you to specify the key fields and non-key fields you want.