Gee, I would think military protocol or at the very least, their duty as patriots would keep any retired general from publically speaking out against their commander in chief's decision making during a time of war. I have no problem with any retired general bending our President's ear in private, but to willingly become political pawns, speaking out against our Secretary of Defense during wartime is unforgivable, IMO.
The duty of a patriot is to speak out when you believe something is wrong. Agree or disagree, these men are expressing their sincere beliefs on the way the war is going. They have earned the right to do so, and they speak from experiences that the rest of us cannot begin to understand.