[[_homogeneous, `class C`], _rational, [_Abel, `2nd type`, `class A`]]
Book solution method
Equation linear in the variables,
Mathematica ✓
cpu = 1.4045 (sec), leaf count = 216
Maple ✓
cpu = 0.043 (sec), leaf count = 228
DSolve[(a2 + b2*y[x] + c2*y[x])*y'[x] == a1 + b1*x + c1*y[x],y[x],x]
Mathematica raw output
Solve[((-2*c1^2*ArcTan[(a2*c1 - 2*a1*(b2 + c2) - 2*b1*b2*x - 2*b1*c2*x - c1*(b2
+ c2)*y[x])/(c1*Sqrt[-((c1^2 + 4*b1*(b2 + c2))/c1^2)]*(a2 + (b2 + c2)*y[x]))])/S
qrt[-((c1^2 + 4*b1*(b2 + c2))/c1^2)] - 2*b1*(b2 + c2)*C[1] + 2*c1^2*Log[-(a2*c1)
+ a1*(b2 + c2) + b1*(b2 + c2)*x] + c1^2*Log[((a2 + (b2 + c2)*y[x])^2*(-(b1*b2)
- b1*c2 + ((b2 + c2)*(-(a2*c1) + a1*(b2 + c2) + b1*(b2 + c2)*x)*(a1 + b1*x + c1*
y[x]))/(a2 + (b2 + c2)*y[x])^2))/(-(a2*c1) + a1*(b2 + c2) + b1*(b2 + c2)*x)^2])/
(2*b1*(b2 + c2)) == 0, y[x]]
Maple raw input
dsolve((a2+b2*y(x)+c2*y(x))*diff(y(x),x) = a1+b1*x+c1*y(x), y(x),'implicit')
Maple raw output
-1/2*ln(-(b2+c2)*b1*(-b1*(b2+c2)^2*y(x)^2+((b2+c2)*(c1*x-2*a2)*b1+c1*(a1*b2+a1*c
2-a2*c1))*y(x)+x^2*(b2+c2)*b1^2+(2*a1*b2*x+2*a1*c2*x-a2*c1*x-a2^2)*b1+a1*(a1*b2+
a1*c2-a2*c1))/((b2+c2)*a1+x*(b2+c2)*b1-a2*c1)^2)-1/(4*b1*b2+4*b1*c2+c1^2)^(1/2)*
arctanh((-2*b1*(b2+c2)^2*y(x)+(b2+c2)*(c1*x-2*a2)*b1+c1*(a1*b2+a1*c2-a2*c1))/(4*
b1*b2+4*b1*c2+c1^2)^(1/2)/((b2+c2)*a1+x*(b2+c2)*b1-a2*c1))*c1-ln((b2+c2)*a1+x*(b
2+c2)*b1-a2*c1)-_C1 = 0