What are the coding techniques used in 10-gigabit ethernet and which situations require the use of which technique?