Ad hoc routing protocols can be classified based on their routing information update mechanism, use of temporal information, topology information organization, and utilization of specific resources. There are three main types of routing information update mechanisms: table driven, on demand, and hybrid. Protocols also differ in whether they use path history or prediction in routing decisions, and whether topology information is organized in a flat or hierarchical manner. Some protocols are designed to be power aware, utilize geographical information, or provide efficient flooding. Examples of common ad hoc routing protocols discussed are DSDV, AODV, DSR, OLSR, and CGSR.