I agree with pp, that at age 6, and considering your ds is happy, you have some time.

When my son became unhappy in school, we looked around at other schools (and a grade skip) to see our options, then scheduled a meeting with the principals.
We explained where my son tested on ability tests (didn't give the IQ number) and asked what they could do to challenge him. Then the principals either rose to the occasion or put their foot in their mouth.

We looked at one gifted middle school where the principal said she didn't care how gifted a kid was, she had never met a kid who needed a grade skip. She went on to say that she couldn't guarantee our son's safety as a grade skipper. She said it would be too hard for the teachers to offer any differentiation. She admitted she'd never read any research on grad skips (this was a principal at a gifted school!!). Obviously he didn't go to that school.

The principal at the school he's going to next year said all the right things. He said he was exactly like my son growing up, and he completely understood why we were shopping around, since that's what his parents did. When I asked about challenge, considering my son would be more advanced than their middle school math curriculum, the principal said he needed to do some research and get back to me. A week later, he called and said he'd talked to the math director who agreed (after looking at my son's math work) that my son was more advanced than the school, but he promised he'd have sufficiently challenging curriculum or else they'd set up AoPs for him at his new school. The principal said he's trying to attract kids like my son to his school, so he wanted to do what it takes to educate him correctly. (This is a STEM school.) I loved this principal's answers and believe he's going to follow through (fingers crossed!).

So the questions:
- how do you ensure every kid is challenged?
- what do you do when a kid already knows the curriculum?
- how do you measure growth and how do you ensure he grows at least a year in a year's time?